CCRepeatForever && CCSequence

本文详细介绍了Cocos2d-x中CCRepeatForever和CCSequence两个动作类的使用方法及注意事项。CCRepeatForever用于无限次重复执行一个动作,但不能参与序列执行,而CCSequence则用于按顺序执行多个动作。

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

CCRepeatForever:无限重复 执行某一个动作

在CCRepeatForever Class Reference中,有这样一条警告“Warning: This action can’t be Sequenceable because it is not an IntervalAction”,而实际上它的确是派生自CCActionInterval.
仅从其本意来说,该类的作用就是无限期执行某个动作或动作序列,直到被停止。因此无法参与序列和同步,自身也无法反向执行(但是你可以将某一动作反向,然后无限重复执行)。

CCSequence:按序列执行动作,这会让节点连续执行几个动作。

static CCFiniteTimeAction *     CCSequence::actions (CCFiniteTimeAction *pAction1,...) 

使用举例:这个例子经常使用的时候,就是执行一个动作,然后回调。比如主角行走一个格子后,切换为站立状态。我在炸弹人的Hero类中使用了这种方法:

CCAction *sequneceAction = CCSequence::actions(moveByAction,CCCallFunc::actionWithTarget(this, callfunc_selector(Hero::moveDoneCallback)),NULL); 
            this->runAction(sequneceAction); 

注意最后要使用NULL结尾。表示传参结束。

这就可以直接看出,若是把 CCRepeatForever 的动作放在 CCSequence 中执行,就有可能会 一直执行 CCRepeatForever 的动作,而 CCSequence 中后面的动作将无法执行, 从而造成逻辑上的错误;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值