执行CCSequence时,使节点RunAction同步的最佳方法是什么

时间:2013-09-12 15:42:12

标签: cocos2d-x

在执行包含CCSequence操作的RunAction之前,我怎能不继续游戏流程。 正在运行

while(!bEndSequence)
{
    .. stop app form continue ... 
}

并且在CCSequence中,最后一个动作将触发bEndSequence为true或false 这是唯一的方法吗?

1 个答案:

答案 0 :(得分:2)

Cocos2d-x不是多线程的,所以while循环(例如你给出的例子)不会阻止进度,它会冻结游戏。相反,你可以做的是创建一个回调函数来触发你想要做的其余事情,例如:

void MyClass::waitToExecute()
{
   //code that you want to delay until after the sequence goes here
}

然后,您可以简单地将该回调添加到序列的末尾,作为要执行的另一个操作。

runAction(CCSequence::create( CCFadeIn::create(TRANSITIONSPEED*1.1f),CCDelayTime::create(TRANSITIONSPEED*0.5), CCFadeOut::create(TRANSITIONSPEED*2.4f), CCCallFunc::create(this, callfunc_selector(MyClass::waitToExecute)), NULL));

当然,这真的取决于你的代码是如何工作的,所以我无法客观地说这是最好的方法。但在很多情况下,这都可行。