动作都是对精灵的操作,比如:移动,旋转,缩放,渐变…等
Cocos的动作分为很多种,基本动作,瞬时动作,延时动作,组合动作,速度变化,扩展动作。
瞬时动作:就是不需要时间,可以马上就完成的动作。
比如:
setPosition() , //设置精灵位置
setVisible() , //设置可见性
1 |
ActionInstant *flipx = FlipX::create(true);//X轴方向上的转向动作 |
等
延时动作:延时动作就是指动作的完成需要一定时间。
比如:(我比较懒,就直接拷贝了)
- 移动到 – CCMoveTo
- 移动– CCMoveBy
- 跳跃到 – CCJumpTo 设置终点位置和跳跃的高度和次数。
- 跳跃 – CCJumpBy 设置终点位置和跳跃的高度和次数。
- 贝塞尔 – CCBezierBy 支持 3 次贝塞尔曲线:P0-起点,P1-起点切线方向,P2-终点切线方向,P3-终点。
- 放大到 – CCScaleTo 设置放大倍数,是浮点型。
- 放大 – CCScaleBy
- 旋转到 – CCRotateTo
- 旋转 – CCRotateBy
- 闪烁 – CCBlink 设定闪烁次数
- 色调变化到 – CCTintTo
- 色调变换 – CCTintBy
- 变暗到 – CCFadeTo
- 由无变亮 – CCFadeIn
- 由亮变无 – CCFadeOut
以上这些都是cocos2d-x 2.0 的函数,去掉前面的CC就是3.0的声明了,如有特殊的可以去百度,不过大多数的规则都是这样,2.0有CC,3.0没有CC…
组合动作:按照一定的次序将上述基本动作组合起来,形成连贯的一套组合动作。
组合动作有很多种,举个形象的例子:跳舞的时候,我们可能同时执行不同的动作,且将这些组合动作顺序的执行,甚至可能执行多次重复…就像下面这样:
- 序列 – CCSequence:Sequence 的使用非常简单,该类也从 CCIntervalAction 派生,本身就可以被 CocosNode 对象执行。该类的作用就是线序排列若干个动作,然后按先后次序逐个执行。
- 同步 – Spawn:Spawn 的使用非常简单,该类也从 IntervalAction 派生,本身就可以被CocosNode 对象执行。该类的作用就是同时并列执行若干个动作,但要求动作都必须是可以同时执行的。比如:移动式翻转、变色、变大小等。需要特别注意的是,同步执行最后的完成时间由基本动作中用时最大者决定。
- 重复有线次数 – Repeate:重复有限次数的动作,该类也从 IntervalAction 派生,可以被 CocosNode 对象执行。
- 反动作 – Reverse:就是反向(逆向)执行某个动作,支持针对动作序列的反动作序列。反动作不是一个专门的类,而是 CCFiniteAction 引入的一个接口。不是所有的类都支持反动作,XxxxTo 类通常不支持反动作,XxxxBy 类通常支持。
- 动画 – Animation:就是让精灵自身连续执行一段影像,形成模拟运动的效果:行走时的精灵状态、打斗时的状态等。
- 无限重复 – RepeatForever:是从 Action 类直接派生的,因此无法参与序列和同步;自身也无法反向执行。该类的作用就是无限期执行某个动作或动作序列,直到被停止。
速度变化:还是跳舞的例子:加速减速…什么时候节奏快,什么时候节奏慢,肯定是不一样的。
- EaseIn 由慢至快。
- EaseOut 由快至慢
- EaseInOut 由慢至快再由快至慢。
- EaseSineIn由慢至快。
- EaseSineOut 由快至慢
- EaseSineInOut 由慢至快再由快至慢。
- EaseExponentialIn 由慢至极快。
- EaseExponentialOut 由极快至慢。
- EaseExponentialInOut 由慢至极快再由极快至慢。
- Speed 人工设定速度,还可通过 SetSpeed 不断调整。
扩展动作:这个比较乱,比如,延时动作 – Delay ,在动作序列中增加一个时间间歇
其他的还有跟随动作,缓冲动作,回调动作以及动作管理等等。
【cocos2d】基本动作语句及其区别