<cocos2d-x for WP7>初探CCAction(动作)
2012-04-10 15:18
288 查看
cocos2d-x为我们提供了相当方便的动作制作。主要有两种:瞬时动作(基类CCActionInstanse)和延时动作(基类CCActionInterval)。我估计大部分人关心的都是延时动作,因为有动感,才能称为动作嘛。
延时动作中,有很多种类型:移动(CCMoveTo,CCMoveBy),旋转(CCRotateTo,CCRotateBy),变形(CCScaleTo,CCScaleBy),跳跃(CCJumpTo,CCJumpBy)等动作。具体可以到http://www.cocos2d-x.org/embedded/cocos2d-x/d7/d12/classcocos2d_1_1_c_c_action.html查看。
实现动作的方法:
1,创建动作绑定结点(代码来自官方的Test工程)
2,定义动作
3,动作执行
上面的就可以完成一个简单的移动动作。
通过研究Test工程。动作的完成主要是由每个动作类的actionWithDuration(在规定条件内完成动作),和reverse(恢复,反过来执行一遍动作)来完成。
比如上面的定义动作的方法,就是在2秒内移动到距离右上角(40,40)的地方。如果还要返回到原位,用原来的轨迹。那么修改为如下:
动作的合成主要靠CCSequence(类似队列,按照顺序执行动作),CCRepeatForever(无限重复动作),CCRepeat(有限重复动作)等完成。
CCSequence用法:
CCRepeatForever用法:
例子:m_grossint.runAction(CCRepeatForever.actionWithAction(CCSequence.actions(actionTo,actionTo.reverse())));
CCRepeat的用法和CCRepeatForever的用法类型。就是多了个time(次数)这个参数。
那么,复杂的动作怎么实现呢,那得靠你的想象力了。怎么把简单的动作组合到一块。
复杂的动作基本都是靠CCSequence,CCRepeat等组合起来使用,具体例子可以看官方的test工程。里面提供了大量的例子。我就不在这里展示了。
延时动作中,有很多种类型:移动(CCMoveTo,CCMoveBy),旋转(CCRotateTo,CCRotateBy),变形(CCScaleTo,CCScaleBy),跳跃(CCJumpTo,CCJumpBy)等动作。具体可以到http://www.cocos2d-x.org/embedded/cocos2d-x/d7/d12/classcocos2d_1_1_c_c_action.html查看。
实现动作的方法:
1,创建动作绑定结点(代码来自官方的Test工程)
m_grossini = CCSprite.spriteWithFile(TestResource.s_pPathGrossini);
2,定义动作
CCActionInterval actionTo = CCMoveTo.actionWithDuration(2, new CCPoint(s.width - 40, s.height - 40));
3,动作执行
m_grossini.runAction(actionTo);
上面的就可以完成一个简单的移动动作。
通过研究Test工程。动作的完成主要是由每个动作类的actionWithDuration(在规定条件内完成动作),和reverse(恢复,反过来执行一遍动作)来完成。
比如上面的定义动作的方法,就是在2秒内移动到距离右上角(40,40)的地方。如果还要返回到原位,用原来的轨迹。那么修改为如下:
CCActionInterval actionTo = CCMoveTo.actionWithDuration(2, new CCPoint(s.width - 40, s.height - 40)); m_grossint.runAction(CCSequence.actions(actionTo,actionTo.reverse()));
动作的合成主要靠CCSequence(类似队列,按照顺序执行动作),CCRepeatForever(无限重复动作),CCRepeat(有限重复动作)等完成。
CCSequence用法:
CCActionInterval actionTo = CCMoveTo.actionWithDuration(2, new CCPoint(s.width - 40, s.height - 40)); m_grossint.runAction(CCSequence.actions(actionTo,actionTo.reverse()));动作执行顺序就是先执行actionTo,再执行action.reverse()这个动作,其实CCSequence也有Reverse这个方法。那动作的执行顺序就是从后面到前面了。
CCRepeatForever用法:
static CCRepeatForever actionWithAction ( CCActionInterval pAction )
例子:m_grossint.runAction(CCRepeatForever.actionWithAction(CCSequence.actions(actionTo,actionTo.reverse())));
CCRepeat的用法和CCRepeatForever的用法类型。就是多了个time(次数)这个参数。
那么,复杂的动作怎么实现呢,那得靠你的想象力了。怎么把简单的动作组合到一块。
复杂的动作基本都是靠CCSequence,CCRepeat等组合起来使用,具体例子可以看官方的test工程。里面提供了大量的例子。我就不在这里展示了。
相关文章推荐
- <cocos2d-x for wp7>使用box2d来做碰撞检测(且仅用来做碰撞检测)
- <cocos2d-x for wp7>使用cocos2d-x制作基于Tile地图的游戏(一)
- <cocos2d-x for wp7>在cocos2d-x上使用重力加速器
- <cocos2d-x for wp7>游戏中按返回键退回到菜单页面
- <cocos2d-x for wp7>在cocos2d-x里面使用BOX2D
- <cocos2d-x for wp7>在cocos2d-x使用spritesheet和用spritesheet创建动画
- <cocos2d-x for wp7>动画制作
- <cocos2d-x for wp7>使用cocos2d-x和BOX2D来制作一个BreakOut(打砖块)游戏(一)
- <cocos2d-x for wp7>使用cocos2d-x制作基于Tile地图的游戏:碰撞检测和收集物品(二)
- <cocos2d-x for wp7>使用cocos2d-x制作一个太空射击游戏
- <cocos2d-x for wp7>使用cocos2d-x制作基于Tile地图的游戏:加入敌人和战斗(三)
- <cocos2d-x for wp7>使用cocos2d-x和BOX2D来制作一个BreakOut(打砖块)游戏(二)
- &lt;jsp:usebean&gt;动作
- <jsp:param>动作标记的用法详解
- <jsp:forward>动作
- Cocos2d入门 <一>建立一个新工程
- <cocos2d-x for wp7>在cocos2d-x里面手势识别
- <cocos2d-x for window phone>一个简单的打地鼠游戏
- <cocos2d-x for wp7>使用cocos2d-x制作基于Tile地图的游戏:不一样的战斗(回合制战斗)(四)
- <jsp:include>动作元素