cocos2d-x如何暂停图层的操作和计划,然后恢复它们

min*_*_LT 6 c++ cocos2d-iphone cocos2d-x

我有一个场景包含很多层(该层包含许多精灵),我如何暂停计划和动作,但随后我可以恢复它们.

Pea*_*der 6

使用功能:

void CCNode::pauseSchedulerAndActions();
void CCNode::resumeSchedulerAndActions();
Run Code Online (Sandbox Code Playgroud)

如果您希望所有图层的子项都暂停,则需要一个循环来执行此操作.

CCArray* childs = this->getChildren();
CCObject* child;
CCARRAY_FOREACH(childs, child)
{
   CCSprite *sprite = (CCSprite *)child;
   child -> pauseSchedulerAndActions();
}
Run Code Online (Sandbox Code Playgroud)

如果你只想要一个特殊的孩子暂停;只需使用函数getChildByTag来获取孩子并暂停精灵的动作.

希望它会有所帮助:)


jis*_*ala 5

在 cocos2dx 3.2 对于暂停动作,添加

Director::getInstance()->pause();在暂停按钮回调中。并Director::getInstance()->resume();恢复。

要在花栗鼠中暂停身体的物理,请添加,

for (auto nod :this->getChildren()) {

 nod->getPhysicsBody()->setResting(true); 
}
Run Code Online (Sandbox Code Playgroud)

for (auto nod :this->getChildren()) {

 nod->getPhysicsBody()->setResting(false); 
}
Run Code Online (Sandbox Code Playgroud)