Cocos2dx 学习日记——Action

本文详细介绍了游戏开发中使用的即时动作和持续动作,包括Place、FlipX/FlipY、Show/Hide、CallFunc系列等即时动作,以及MoveTo/MoveBy、JumpTo/JumpBy、ScaleTo/ScaleBy等持续动作,并解释了它们的应用场景和技术细节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

动作分为即时动作(ActionInstant)和持续动作(ActionInterval)

即时动作有:Place,FlipX、FlipY,Show、Hide,CallFunc
Place
该动作用于将节点放置到某个指定位置,其作用与修改节点的position属性相同。

FlipX和FlipY
这两个动作分别用于将精灵沿X轴和Y轴反向显示,其作用与设置精灵的FlipX和FlipY属性相同。

Show和Hide
这两个动作分别用于显示和隐藏节点,其作用与设置节点的visible属性作用一样。

CallFunc
CallFunc系列动作包括CallFunc、CallFuncN、CallFuncND、CallFuncO四个动作,用来在动作中进行方法调用。N=node, D=data, O=object。
如:
// 动作回调:调用指定函数 // 匿名函数 CallFunc* callfunc = CallFunc::create([](){ log("******callfunc***********"); // 切换场景 Scene* scene = HelloWorld::createScene(); Director::getInstance()->replaceScene(scene); }); CallFuncN* callfuncN = CallFuncN::create([this](Node* node) { Sprite* sp = (Sprite*)node; //sp->setOpacity(255); //sp->remove // 移除指定节点 //this->removeChild(sp); // 节点从父节点移除 sp->removeFromParent(); });

持续动作ActionInterval
属性变化动作
属性变化动作通过属性值的逐渐变化来实现动画效果。需要注意的是XXTo和XXBy的区别在于XXTo是表示最终值,而XXBy则表示向量-改变值。

MoveTo和MoveBy
用于使节点做直线运动,设置了动作时间和终点位置,在规定时间内会移动到终点。
MoveTo的position值表示最后位置,而MoveBy的position则表示移动的位置。

JumpTo和JumpBy
使节点以一定的轨迹跳跃到指定位置。
ScaleTo和ScaleBy
产生缩放效果,使节点的缩放系数随时间线性变化。

RotateTo和RotateBy产生旋转效果。

BezierTo和BezierBy
使节点进行曲线运动,运动的轨迹由贝塞尔曲线描述。
每条贝塞尔曲线都包含一个起点和一个终点。在一条曲线中,起点和终点各自包含一个控制点,而控制点到端点的连线称作控制线。控制点决定了曲线的形状,包含角度和长度两个参数。如下图:
曲线
使用时,我们要先创建ccBezierConfig结构体,设置好终点endPosition以及两个控制点controlPoint_1和controlPoint_2后,再把结构体传入BezierTo或BezierBy的初始化方法中。

视觉特效动作
该类用来实现特殊视觉效果
FadeIn, FadeOut和FateTo
产生淡入淡出效果,和透明变化效果。
TintTo和TintBy
设置色调变化。

Blink
使节点闪烁。

组合动作:
Spawn 并列动作,时间为最大时间动作
Spawn spawn=Spawn::create(动作1,动作2,,,,nullptr);
Sequence序列动作,有序的执行,有先后顺序,执行之间为其之和

DelayTime空动作(延时动作)一般放在序列动作中使用
DelayTime *delaytime=DelayTime::create(2.0f)
重复动作
Repeat 需要加次数
RepeatForever 永久重复

动作
更多笔记可看:老廖&&Games

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GAME LIAO

感谢您的支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值