Cocos2dx-3.1.x中探究Action的子类

来源:互联网 发布:淘宝新店刷流量有用吗 编辑:程序博客网 时间:2024/06/05 15:41

查看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;
}

以上,OVER

原创粉丝点击