动作CCAction
通过使用CCAction可以实现物体的各种动作效果。CCAction的动作作用于CCNode,使用方式如下代码
CCSprite* sprite = CCSprite::create("fish.png");
CCAction* action = CCMoveTo::create(1.0f, ccp(0, 0));
sprite->runAction(action);
- CCAction是一个基类,各种运动是由它的派生类实现的。
- 一个CCAction只能使用一次。
- 绝大多数CCAction动作都派生自CCFiniteTimeAction类(还有控制动作,复合动作,视觉特效动作等)。
- 这个类定义了一个reverse方法,可以获得动作的逆动作。
- CCFiniteTimeAction类又分为瞬时动作和持续性动作两类。
瞬时动作
瞬时动作是下一帧就会立刻执行的动作,有如下,英语好的话应该不难理解吧:)
- CCPlace
- CCFilpX, CCFilpY
- CCShow, CCHide
- CCCallFunc 调用一个函数
持续性动作
持续性动作是在持续一段时间里面完成的动作,指定了起始状态,终止状态和持续时间,就会获得相应的动作。一般游戏里出现的动作效果都可以用这些动作及动作的组合完成。这是很好的设计,让程序员能着重于有创造力的工作,如动作设计而不是费心思想怎么实现,好的工具就是能让人专注于核心工作!
- CCMoveTo CCMoveBy
- CCBezierTo, CCBezierBy
- CCJumpTo, CCJumpBy
- CCRotateTo, CCRotateBy
- CCFadeIn, CCFadeOut
- CCTintTo, CCTintBy
CCSequence
把动作组成一组动作序列,如怪物沿着某线路移动,移动出屏幕后消失,最后一个参数为NULL表示结尾
CCAction* action = CCSequence::create(curveMove, hideAction, NULL);
CCSpawn
让一批动作并列执行,如怪物一边移动一边发动攻击,最后一个参数为NULL表示结尾
CCRepeat, CCRepeatForever
设置某一动作的重复次数
变速动作
CCEaseSineIn和CCSpeed,可以让上述的动作变速完成