在实际开发中我们通常用到两类动作-即时动作(ActionInstant)和持续动作(ActionInterval),它们均继承于有限时间动作类。
Place 该动作用于将节点放置到某个指定位置,其作用与修改节点的position属性相同。
即时动作
FlipX和FlipY
这两个动作分别用于将精灵沿X轴和Y轴反向显示,其作用与设置精灵的FlipX和FlipY属性相同,将其包装成动作是为了便于与其他动作进行组合。
Show和Hide
这两个动作分别用于显示和隐藏节点,其作用与设置节点的visible属性作用一样。
CallFunc
CallFunc系列动作包括CallFunc、CallFuncN两个动作,用来在动作中进行方法调用。在游戏中为了节约内存资源,我们可以在动作完成后调用相应函数清理内存,
持续动作
MoveTo和MoveBy
用于使节点做直线运动,设置了动作时间和终点位置,在规定时间内会移动到终点,
JumpTo和JumpBy
使节点以一定的轨迹跳跃到指定位置,
BezierTo和BezierBy
使节点进行曲线运动,运动的轨迹由贝塞尔曲线描述。
代码实例
ccBezierConfig bezier;
bezier.controlPoint_1 = Point(0, 0);
bezier.controlPoint_2 = Point(100, 100);
bezier.endPosition = Point(50, 100);
auto bezierAction = BezierTo::create(0.5f, bezier);
ScaleTo和ScaleBy
产生缩放效果,使节点的缩放系数随时间线性变化,
RotateTo和RotateBy
产生旋转效果,
TintTo和TintBy
设置色调变化,这个动作较少使用,
Blink
使节点闪烁,
Animation
以帧动画形式实现动画效果,
DelayTime
延时动作其实什么都不做,提供一段空白期,
Repeat/RepeatForever
反复执行某个动作,
Spawn
使一批动作同时执行,
Sequence
让各种动作有序执行,
Speed
用于线性的改变某个动作的速度,
ActionEase
Speed虽然能改变动作的速度,但是只能按比例改变速度,ActionEase可以实现动作的速度又快到慢、速度随时间改变的匀速运动。该类包含5类运动,指数缓冲、Sine缓冲、弹性缓冲、跳跃缓冲和回震缓冲。每类运动都包含3个不同时期的变换:In、Out和InOut。