I have a scene contains many layer(the layer contains many sprite), how can I pause the schedule and actions , but then I can resume them.
Use functions:
void CCNode::pauseSchedulerAndActions();
void CCNode::resumeSchedulerAndActions();
If you want all the layer's children to pause, you need a loop to do do this.
CCArray* childs = this->getChildren();
CCObject* child;
CCARRAY_FOREACH(childs, child)
{
CCSprite *sprite = (CCSprite *)child;
child -> pauseSchedulerAndActions();
}
If you just want a special child to pause;Just use function getChildByTag
to get the child and pause the sprite's action.
Hope it will be helpful :)
In cocos2dx 3.2 For pausing actions,add
Director::getInstance()->pause();
in pause button callback.
and Director::getInstance()->resume();
to resume.
For pausing physics of a body in Chipmunk add,
for (auto nod :this->getChildren()) {
nod->getPhysicsBody()->setResting(true);
}
and
for (auto nod :this->getChildren()) {
nod->getPhysicsBody()->setResting(false);
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With