Cocos2dx动作篇

Cocos2dx动作篇,第1张

概述延时动作 延时动作就是动作的完成需要一定时间。因此,actionWithDuration 是延时动作执行时的第一个参数,延时动作的共同基类是 IntervalAction。 函数的命名规则: ***To: 意味着运动到指定的位置。 ***By:意味着运动到按照指定癿 x、y 增量的位置。(x、y 可以是负值) 移动到 – MoveTo 移动– MoveBy 跳跃到 – umpTo 设置终点位置和跳 延时动作


延时动作就是动作的完成需要一定时间。因此,actionWithDuration 是延时动作执行时的第一个参数,延时动作的共同基类是 IntervalAction。
函数的命名规则:


***To: 意味着运动到指定的位置。


***By:意味着运动到按照指定癿 x、y 增量的位置。(x、y 可以是负值)


移动到 – Moveto


移动– MoveBy


跳跃到 – umpTo


设置终点位置和跳跃癿高度和次数。


跳跃 – JumpBy


设置终点位置和跳跃癿高度和次数。


贝塞尔 – BezIErBy


支持 3 次贝塞尔曲线:P0-起点,P1-起点切线方向,P2-终点切线方向,P3-终点。


首先设置定 BezIEr 参数,然后执行。


放大到 – Scaleto


设置放大倍数,是浮点型。


放大 – ScaleBy


旋转到 – Rotateto


旋转 – RotateBy


闪烁 – Blink


设定闪烁次数


色调变化到 – TintTo


色调变换 – TintBy


变暗到 – Fadeto


由无变亮 – FadeIn


由亮变无 – FadeOut
组合动作


按照一定的次序将上述基本动作组合起来,形成连贯的一套组合动作。组合动作包括以 下几类:


序列 – Sequence
同步 –Spawn

速度变化


基本动作和组合动作实现了针对精灵的各种运动、动画效果的改变,但这样的改变的速度是不变的,通过 EaseAction 为基类的类系和 Speed 类我们可以很方便的修改精灵执行动作的速度:由快至慢还是由慢至快


EaseIn 由慢至快。


EaSEOut 由快至慢


EaseInOut 由慢至快再由快至慢。


EaseSineIn 由慢至快


EaseSineOut 由快至慢


EaseSineInOut 由慢至快再由快至慢。


EaseExponentialin 由慢至极快。


EaseExponentialOut 由极快至慢。


EaseExponentialinOut 由慢至极快再由极快至慢。


Speed 人工设定速度,还可通过 SetSpeed 不断调整。

函数调用 :
SEL_CallFunc
SEL_CallFuncN


代码示例:
ccBezIErConfig bezIEr;
bezIEr.controlPoint_1 = Vec2(100,400);
bezIEr.controlPoint_2 = Vec2(500,300);
bezIEr.endposition = Vec2(visibleSize.wIDth*0.7,visibleSize.height*0.1);
BezIErBy *bezIErBy = BezIErBy::create(6.0f,bezIEr);
Action *actBy = bezIErBy->reverse();
Sequence *seque = Sequence::create(bezIErBy,actBy,NulL);
auto scaleByX = ScaleBy::create(0.2f,1.5,1);
Action *scaleX = scaleByX->reverse();
auto scaleByY = ScaleBy::create(0.3f,1,1.5);
Action *scaleY = scaleByY->reverse();
static int count = 0;
auto callBack = CallFunc::create([=](){
count++;
cclOG("这是第%d次动画",count);
});


auto sequen = Sequence::create(scaleByX,scaleX,scaleByY,scaleY,callBack,NulL);


Repeat *repeat = Repeat::create(sequen,12);

Spawn *spawn = Spawn::create(seque,repeat,NulL);

RepeatForever *repeatForever = RepeatForever::create(spawn);


menuItem->runAction(repeatForever);


Rotateto //// 作用创建一个旋转的动作 //// 参数1:旋转的时间 参数2:旋转饿角度 0 - 360 // CCActionInterval * rotateto = Rotateto::create(2,90); // sp->runAction(rotateto); //sp是把一个精灵添加到动作上

总结

以上是内存溢出为你收集整理的Cocos2dx动作篇全部内容,希望文章能够帮你解决Cocos2dx动作篇所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1078823.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存