Email : hahayacoder@gmail.com学习
1 在一个游戏中有了人物、白云等精灵,可是游戏中精灵静止不动确定是不行的,要让它们执行一些动做,使精灵有丰富的动画效果,这样就会使用到CCAction类。CCAction主要用于人物角色等发生动做时使用,如紧身肉搏、远程射击和贴近对话等动画
2 在cocos2d-x中,CCAction的类结构图以下spa
3 从上面的类结构图能够看出,动做的基类是CCAction,经过继承它能够实现不少不一样的动做,主要分为三大类:CCFiniteTimeAction(有限次动做执行类)、CCSpeed(节点执行速度类)、CCFollow(节点跟随另外一个节点移动)code
4 在实际中,主要用到的是CCFiniteTimeAction类,因此下面详细介绍这个类。blog
5 CCFiniteTimeAction分为CCActionInstant(瞬时动做)和CCActionInterval(延迟动做)。其中CCActionInstant动做没有执行过程,动做瞬时完成,而CCActionInterval动做执行须要必定的时间(或者一个过程)继承
6 在实际中,为了制做出炫丽的动画效果,使用得多的是CCActionInterval延时动做,下面开始介绍延迟动做游戏
7 在上面的类结构图中,CCActionInterval的子类不少,简单介绍其中经常使用的,也能够经过cocos2d-x中自带的TestCpp例子来学习get
(1) CCMoveTo / CCMoveBy 移动二者的主要差异在于CCMoveTo是移动到指定坐标,CCMoveBy是相对坐标。例如CCMoveTo(2.0f, ccp(50, 50))是在2s时间内移动到点x = 50、y = 50处,而CCMoveBy(2.0f, ccp(50, 50))表示2s时间内向x方向移动50个单位,向y方向移动50个单位it
(2) CCScaleTo / CCScaleBy 缩放io
(3) CCRotateTo / CCRotateBy 旋转
(4) CCSkewTo / CCSkewBy 扭曲
(5) CCJumpTo / CCJumpBy 跳跃
(6) CCBezierTo / CCBezierBy 贝塞尔曲线
(7) CCBink 闪烁
(8) CCFadeIn / CCFadeOut 淡入淡出
(9) CCTintTo / CCTintBy 染色
8 动做的一个简单用法
CCSprite *heroSprite = CCSprite::create(“hero.png”);
CCMoveTo *move = CCMoveTo::create(2.0f, ccp(50, 50));
heroSprite->runAction(move);