6

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

4

3 回答 3

6

使用功能:

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

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

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

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

希望它会有所帮助:)

于 2012-12-18T02:51:25.673 回答
5

在 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); 
}
于 2015-04-28T03:57:21.143 回答
0

暂停:

pauseSchedulerAndActions();

unscheduleAllSelectors();

恢复:

resumeSchedulerAndActions();

日程更新();

于 2015-04-23T16:54:27.617 回答