CCRepeatForever && CCSequence

来源:互联网 发布:三国志9威力加强版mac 编辑:程序博客网 时间:2024/05/23 20:05

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 中后面的动作将无法执行, 从而造成逻辑上的错误;

0 0
原创粉丝点击