Cocos2d-x action相关笔记

转自  http://blog.csdn.net/yanghuiliu/article/details/7261808

在实现运动中,我们常常需要实现一些加速度或者减速度的效果,cocos2d-x引擎为我们提供了相应的实现接口,这样我们就不用再用原来的公式计算方法来实现加减速度的效果

Ease系列的方法改变了运动的速度,但是并没有改变总体时间,如果整个的action持续5秒钟,那么整个的时间仍然会持续5秒钟。

这些action可以被分成3类:

In actions: action开始的时候加速

Out actions: action结束的时候加速

InOut actions: action开始,结束的时候加速

第一个参数为要加减速度的动作,第二个为加减的速率

还有一些特殊的缓冲公式继承了进来

1.指数缓冲


 

EaseExponentialIn

EaseExponentialOut

EaseExponentialInOut

2.赛因缓冲


 

EaseSineIn

EaseSineOut

EaseSineInOut

 

3.弹性缓冲



 

EaseElasticIn

EaseElasticOut

EaseElasticInOut

4.跳跃缓冲


 

EaseBounceIn

EaseBounceOut

EaseBounceInOut

5.回震缓冲


 

EaseBackIn

EaseBackOut

EaseBackInOut

另外还可以设置速度的倍数

通过把动作定义为CCSpeed并改变速度,使用setSpeed将速度按参数的倍数变大或者缩小,这样可以手动实现加减速度

 

MoveTo和MoveBy的区别:to表示移动到指定位置为止,by表示从当前位置移动多少单位距离。ScaleTo和Scaleby同理。

cocos2d-x中的action分为瞬时和延时,瞬时就是setScale, setPosition, setColor等常用函数,延时动作分为:

  • 移动到 – CCMoveTo
  • 移动– CCMoveBy
  • 跳跃到 – CCJumpTo   设置终点位置和跳跃的高度和次数。
  • 跳跃 – CCJumpBy   设置终点位置和跳跃的高度和次数。
  • 贝塞尔 – CCBezierBy  支持 3 次贝塞尔曲线:P0-起点,P1-起点切线方向,P2-终点切线方向,P3-终点。
  • 放大到 – CCScaleTo   设置放大倍数,是浮点型。
  • 放大 – CCScaleBy
  • 旋转到 – CCRotateTo
  • 旋转 – CCRotateBy
  • 闪烁 – CCBlink   设定闪烁次数
  • 色调变化到 – CCTintTo
  • 色调变换 – CCTintBy
  • 变暗到 – CCFadeTo
  • 由无变亮 – CCFadeIn
  • 由亮变无 – CCFadeOut
  • 震动 - CCShaky3D

组合动画可以将复数个动画放置一个对象中,按规则调用,组合动画分为:

  •  序列 – CCSequence

      Sequence 的使用非常简单,该类也从 CCIntervalAction 派生,本身就可以被 CocosNode 对象执行。该类的作用就是线序排列若干个动作,然后按先后次序逐个执行。

  • 同步 – Spawn

      Spawn 的使用非常简单,该类也从 IntervalAction 派生,本身就可以被CocosNode 对象执行。该类的作用就是同时并列执行若干个动作,但要求动作都必须是可以同时执行的。比如:移动式翻转、变色、变大小等。
      需要特别注意的是,同步执行最后的完成时间由基本动作中用时最大者决定。

  • 重复有线次数 – Repeate

       重复有限次数的动作,该类也从 IntervalAction 派生,可以被 CocosNode 对象执行。

  • 反动作 – Reverse

       反动作就是反向(逆向)执行某个动作,支持针对动作序列的反动作序列。反动作不是一个专门的类,而是 CCFiniteAction 引入的一个接口。不是所有的类都支持反动作,XxxxTo 类通常不支持反动作,XxxxBy 类通常支持。

  •  动画 – Animation

      动画就是让精灵自身连续执行一段影像,形成模拟运动的效果:行走时的精灵状态、打斗时的状态等。

  • 无限重复 – RepeatForever

      RepeatForever 是从 Action 类直接派生的,因此无法参与序列和同步;自身也无法反向执行。该类的作用就是无限期执行某个动作或动作序列,直到被停止。

posted on 2014-03-30 21:26  泰达  阅读(251)  评论(0)    收藏  举报

导航