查看Action类的继承关系
Ref, Clonable->Action->FiniteTimeAction->ActionInterval
发现常用的动作都是继承ActionInterval的,共有29个,代表有变化的过程动作(可以看出普遍动作都有时间参数)
成对使用,绝对路径To是没有反动作的
功能 | 动作 | 动作2 |
---|---|---|
缩放 | ScaleBy | ScaleTo |
贝塞尔曲线 | BezierBy | BezierTo |
跳跃 | JumpBy | JumpTo |
倾斜 | SkewBy | SkewTo |
移动 | MoveBy | MoveTo |
色调 | TintBy | TintTo |
旋转 | RotateBy | RotateTo |
重复 | RepeatForever | Repeat |
节点的content size的大小 | ResizeBy | ResizeTo |
配合上面的组合使用
功能 | 动作 |
---|---|
动画 | Animate |
延时动作 | DelayTime |
从暗逐渐变亮 | FadeIn |
从亮逐渐变暗 | FadeTo |
从亮逐渐变消失 | FadeOut |
所有动作同时执行 | Spawn |
闪烁 | Blink |
序列动作 | Sequence |
从开始处到达目的地执行自定义函数 | ActionFloat |
让节点执行该Action | TargetedAction |
时间逆序执行,实际是无序的 | ReverseTime |
注意
ResizeBy,ResizeTo, Cocos2d-x v3.14新增动作类:ResizeBy和ResizeTo,和ScaleBy、ScaleTo不同的是,ResizeBy和ResizeTo改变的是节点的content size的大小。这种动作对于支持九宫格特性的节点的缩放效果比ScaleBy和ScaleTo好,因为ScaleBy和ScaleTo是对节点做整体缩放。
By是相对,To是绝对路径,每个action都有反动作,但是To的反动作都没有实现,By的都实现了,
下面看reverse方法实现
MoveBy的reverse方法实现
c++
MoveBy* MoveBy::reverse() const
{
return MoveBy::create(_duration, -_positionDelta);
}
MoveTo的reverse方法实现
c++
MoveTo* MoveTo::reverse() const
{
CCASSERT(false, "reverse() not supported in MoveTo");
return nullptr;
}