在
我执行包含 CCSequence 操作的运行操作之前,我怎么能不继续游戏流程。正在运行
while(!bEndSequence)
{
.. stop app form continue ...
}
在 CCSequence 中,最后一个操作将触发 bEndSequence 为 true 或 false这是唯一的办法吗?
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));
当然,这实际上取决于您的代码如何工作,所以我无法客观地说这是最好的方法。但在很多情况下,这将正常工作。