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

时间:2012-12-18 02:24:11

标签: c++ cocos2d-iphone cocos2d-x

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

3 个答案:

答案 0 :(得分:6)

使用功能:

void CCNode::pauseSchedulerAndActions();
void CCNode::resumeSchedulerAndActions();

如果你想让所有图层的孩子都暂停,你需要一个循环来做这件事。

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

如果您只想让一个特殊的孩子暂停;只需使用函数getChildByTag来获取孩子并暂停精灵的行动。

希望它会有所帮助:)

答案 1 :(得分:4)

在cocos2dx中3.2对于暂停操作,添加

暂停按钮回调中的

Director::getInstance()->pause();。 并Director::getInstance()->resume();恢复。

为了在Chipmunk中暂停身体的物理,

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

 nod->getPhysicsBody()->setResting(true); 
}

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

 nod->getPhysicsBody()->setResting(false); 
}

答案 2 :(得分:0)

暂停:

pauseSchedulerAndActions();

unscheduleAllSelectors();

<强>履历:

resumeSchedulerAndActions();

scheduleUpdate();