Ich habe eine Szene enthält viele Ebenen (die Ebene enthält viele Sprite), wie kann ich den Zeitplan und Aktionen pausieren, aber dann kann ich sie fortsetzen.cocos2d-x wie man die Aktionen und den Zeitplan einer Ebene pausiert und dann wieder aufnimmt
6
A
Antwort
6
Funktionen verwenden:
void CCNode::pauseSchedulerAndActions();
void CCNode::resumeSchedulerAndActions();
Wenn Sie die Kinder alle Schicht wollen anhalten, müssen Sie eine Schleife, dies zu tun.
CCArray* childs = this->getChildren();
CCObject* child;
CCARRAY_FOREACH(childs, child)
{
CCSprite *sprite = (CCSprite *)child;
child -> pauseSchedulerAndActions();
}
Wenn Sie nur ein besonderes Kind anhalten mögen, nur Funktion getChildByTag
das Kind zu bekommen und die Sprites Aktion unterbrechen.
Hoffe, dass es hilfreich :) sein
0
Pause:
pauseSchedulerAndActions();
unplanedAllSelectors();
resume:
resumeSchedulerAndActions();
scheduleUpdate();
4
In cocos2dx 3.2 Für Aktionen pausieren, fügen
Director::getInstance()->pause();
in Callback-Pause-Taste. und Director::getInstance()->resume();
um fortzufahren.
Für Physik eines Körpers in Chipmunk Pause hinzuzufügen,
for (auto nod :this->getChildren()) {
nod->getPhysicsBody()->setResting(true);
}
und
for (auto nod :this->getChildren()) {
nod->getPhysicsBody()->setResting(false);
}
en, danke! Aber es gibt einige Sprites Aktion ausführen, verwenden Sie die 'pauseSchedulerAndActions' dieses Sprites nicht pausieren Aktion. –