Cocos2dx - 缓动Action

普通动作

瞬时动作

用法:
local hideAction = cc.Hide:create()
node:runAction(hideAction);

动作 参数 介绍
Place cc.p(x,y) 将节点放置某个位置。
FlipX,FlipY true/false true则翻转,false则不翻转。只作用于Sprite,分别将Sprite沿X轴或Y轴反转显示
Show,Hide 用于显示和隐藏节点。
CallFunc function() 运行一个自定义的回调
注意事项
这里的动作在代码里需要带上 cc; 比如 local _place = cc.Place:create(cc.p(0,0))

有限时动作

动作 参数 介绍
MoveTo与MoveBy durationTime,cc.p(x,y) 参数1为运动总时间,参数2:MoveTo是目标终点,MoveBy是相对偏移量。
umpTo与JumpBy durationTime,cc.p(x,y),25,5 使节点以一定的轨迹跳跃到指定位置。参数1为运动总时间,参数2:JumpTo是目标终点,Jump为相对偏移量。参数3是跳跃高度,参数4是跳跃次数。
ScaleTo与ScaleBy durationTime,0.1 使节点的缩放系数随时间线性变化。参数1为持续时间,参数2:ScaleTo是最终缩放系数,ScaleBy是相对缩放系数。注:可利用缩放达到震动的效果。
RotateTo与RotateBy durationTime,Angel 使节点围绕锚点旋转。参数1为持续时间,参数2:RotateTo是最终角度,RotateBy是相对旋转角度
FadeIn与FadeOut durationTime 淡入,淡出 。唯一参数:FadeIn是多少时间内节点透明度从0到255,FadeOut相反
FadeTo durationTime,Opacity 参数1:持续时间,参数2:目标透明度
Blink durationTime,count 使节点闪烁。参数1为持续时间,参数2为闪烁次数。
TintTo与TintBy durationTime,r,g,b 使节点着色。参数1持续时间,参数2目标red值,参数3目标green值,参数4目标blue值。
DelayTime delayTime 延时执行下一个动作。唯一参数:delayTime 单位秒

缓冲动作

CCActionEase系列包含15个动作,它们可以被概括为5类动作:指数缓冲、Sine缓冲、弹性缓冲、跳跃缓冲和回震缓

冲。每一类动作都有3个不同时期的变换:In、Out和InOut。下面使用时间变换图像表示每组CCActionEase动作的作

用效果,其中横坐标表示实际动画时间,纵坐标表示变换后的动画时间。因此,线性动作的图像应该是一条自左下角到右上角的直线  

CCEaseRateAction它是CCActionEase的派生类,而CCEaseRateAction,它是按变速运动的比例运动。它的三个派生类

CCEaseIn,CCEaseout, CCEaseInOut

派生类
CCEaseIn由慢至快,按照参数比例运动。
CCEaseOut由快至慢。
CCEaseInOut,是前两者的综合。

CCEaseExponentialIn,CCEaseExponentialOut, CCEaseExponentialInOut,的基类是CCActionEase

CCEaseExponentialIn 由慢至快,没有比例参数(逐渐快起来)
CCEaseExponentialOut 由快至慢,开始忽然加速(用得较多,即开始加速,然后速度衰减)
CCEaseExponentialInOut 前两者的综合

CCEaseSineIn, CCEaseSineout, CCEaseSineInOut基类是CCActionEase,它是弹性缓冲。

指数缓冲

在这里插入图片描述

cc.EaseExponentialIn:create();
cc.EaseExponentialOut:create();
cc.EaseExponentialInOut:create();

赛因缓冲

在这里插入图片描述

cc.EaseSineIn:create();
cc.EaseSineOut:create();
cc.EaseSineInOut:create();

弹性缓冲

在这里插入图片描述

cc.EaseElasticIn:create();
cc.EaseElasticOut:create();
cc.EaseElasticInOut:create();

跳跃缓冲

在这里插入图片描述

cc.EaseBounceIn:create();
cc.EaseBounceOut:create();
cc.EaseBounceInOut:create();

回震缓冲

在这里插入图片描述

cc.EaseBackIn:create();
cc.EaseBackOut:create();
cc.EaseBackInOut:create();


组合动作

重复动作
Repeat 执行某个动作n次和无限反复执行,Repeat动作不能嵌入其他复合动作内使用,应该是最外层的动作,嵌入其他符合动作会不能正确重复动作。
RepeatForever 无限重复执行同一个动作
Follow 让一个节点跟随另一个节点的动作,可以用来设置Layer跟随Sprite,可以实现类似摄像机跟拍的效果

cc.Repeat:create(action,times) --执行action动作times次
cc.RepeatForever:(action) --无限重复执行action动作
cc.Follow:create(followedNode,rect) --followedNode:跟随的目标。rect:跟随的范围,离开范围就不再跟随。

序列帧动画

按照队列的方式执行一组动画 :
cc.Sequence:create(action1,…)

local sequeAction = cc.Sequence:create(cc.DelayTime:create(2),cc.MoveTo:create((2,cc.p(100,200))));
pNode:runAction(sequeAction);–运行这个动作 节点需要4秒

并行混合动画

同时执行一组动画 :
cc.Spawn:create(action1,…)

local spawnAction = cc.Spawn:create(cc.DelayTime:create(2),cc.MoveTo:create(2,cc.p(100,200)));
pNode:runAction(spawnAction); --运行这个动作 节点需要2秒

Guess you like

Origin blog.csdn.net/qq_39162566/article/details/98673255