Roope的Cocos2d-x学习之旅 002:简简单单的运动
来源:互联网 发布:诸葛亮北伐的战略 知乎 编辑:程序博客网 时间:2024/06/05 18:29
I just don’t want to regret it:
1. 你想去哪,你想走多远 ——MoveTo和MoveBy:
MoveTo(你想去哪)它的作用也就是从某个地方到另一个地方,比如A(x1, y1),B(x2, y2);当我们想把精灵从A移动到B点时,我们就可以用MoveTo(A MoveTo B,就是这么理解啦~)。
MoveBy(你想走多远)它的作用就是A运动B这个距离这么远。也就是到达C(x1 + x2, y1 + y2);(A add B,就这么理解~)
具体实现如下:
//截取屏幕大小 Size visibleSize = Director::getInstance()->getVisibleSize(); //定义一个精灵 Sprite* Roope = Sprite::create("sprite.png"); Roope->setPosition(Point(50, visibleSize.height / 2));//放置的位置 this->addChild(Roope); //你想去哪 //MoveTo* moveTo = MoveTo::create(0.9f, Point(250, 150)); //Roope->runAction(moveTo); //你想走多远 MoveBy* moveBy = MoveBy::create(0.9f, Point(250, 150)); Roope->runAction(moveBy);
2. 我要减肥——ScaleTo和ScaleBy:
首先是ScaleTo,ScaleTo的create有三个参数:
float duration: 动作的持续时间,单位为秒。
float sx : x方向的拉伸值。
float sy : y方向的拉伸值。
示例如:
Size visibleSize = Director::getInstance()->getVisibleSize(); Sprite* roope = Sprite::create("sprite.png"); roope->setPosition(Point(visibleSize.width / 2, visibleSize.height / 2)); addChild(roope); ScaleTo* scaleTo = ScaleTo::create(5.5f, 0.4f, 1.0f); roope->runAction(scaleTo);
然后是ScaleBy,ScaleBy的create参数和ScaleTo的一样。
ScaleBy::create(2.8f, 0.4f, 1.0f);
这里要说一下ScaleTo和ScaleBy的区别所在。ScaleTo的效果是不管精灵当前的拉伸倍数是多少,它就会把精灵缩放到指定的倍数。而ScaleBy的效果是在精灵当前的倍数的基础上,再次拉伸。
如:
Size visibleSize = Director::getInstance()->getVisibleSize(); Sprite* roope1 = Sprite::create("sprite.png"); roope1->setPosition(Point(100, visibleSize.height / 2)); roope1->setScale(2.0f);//拉伸精灵 addChild(roope1); Sprite* roope2 = Sprite::create("sprite.png"); roope2->setPosition(Point(400, visibleSize.height / 2)); roope2->setScale(2.0f);//拉伸精灵 addChild(roope2); ScaleTo* scaleTo = ScaleTo::create(3.0f, 1.0f, 1.0f); ScaleBy* scaleBy = ScaleBy::create(3.0f, 2.0f, 1.0f); roope1->runAction(scaleTo); roope2->runAction(scaleBy);
这里就可以发现两者巨大的差别。
3. 闪亮登场——Blink:
Blink可以是精灵闪烁,并且可以指定闪烁次数,使用方法类似MoveTo等类。其create函数有两个参数。
float duration :动作持续时间,单位为秒。
float uBlink : 闪烁次数。
示例如:
Size visibleSize = Director::getInstance()->getVisibleSize(); Sprite* roope = Sprite::create("sprite.png"); roope->setPosition(Point(visibleSize.width / 2, visibleSize.height / 2)); addChild(roope); Blink* blink = Blink::create(5.0f, 10); roope->runAction(blink);
0 0
- Roope的Cocos2d-x学习之旅 002:简简单单的运动
- Roope的Cocos2d-x学习之旅 004:动作一起做——Spawn和Sequence
- Roope的Cocos2d-x学习之旅 000:纠结过后我终究还是选择了学习Cocosd-x
- Roope的Cocos2d-x学习之旅 001:基础概念学习——导演、场景、层、精灵
- Roope的Cocos2d-x学习之旅 003:无限重复和有限重复动作——RepeatForever和Repeat
- Cocos2d-x 实现运动的尾巴效果
- Cocos2d-x 实现运动的尾巴效果
- Cocos2d-x加速度计实例:运动的小球
- Cocos2d-X 物体重复运动的实现
- 【cocos2d-x游戏开发】图片的“运动”
- cocos2d-x 学习 之 环境的部署
- 我的cocos2d-x学习之路
- Cocos2d-x的学习之旅(一)扫盲篇
- Cocos2d-x的学习之旅(二)HelloWorld
- Cocos2d-x的学习之旅(四)坐标系
- Cocos2d-x的学习之旅(五)菜单按钮
- Cocos2d-x的学习之旅(六)输入框
- Cocos2d-x的学习之旅(八)进度条
- 谷歌偏转库一个类
- JavaWeb-06(Dom4j技术及Schema 约束、Tomcat与Web程序结构)
- 《三体》阅读笔记
- iOS —— NSRunLoop(二)关于NSTimer的理解
- 项目-不要因为项目小就不制定计划
- Roope的Cocos2d-x学习之旅 002:简简单单的运动
- Django模板系统
- ASPxGridViewExporter excel导出
- 【生活】程序员爱代码,而我爱你们
- UITextField监听文字输入事件
- 妙用html5的八大特性来开发移动webAPP
- 二维码的生成器。
- 带默认参数的函数
- template non-type parameter 非类型参数