2013-01-07 56 views

回答

0

理想情況下,在applicationWillEnterForeground中,您應該簡單地用場景的新實例替換場景以重新開始。如果您正在運行的場景類別爲GameLevelScene,則應該簡單地告知CCDirector將正在運行的場景替換爲其類中的新實例。例如:

CCDirector::sharedDirector()->replaceScene(GameLevelScene::create()); 

但是,當我在做類似暫停從後臺恢復我注意到,這是不是很努力我的遊戲東西(它應該已經,也許這是一些問題的cocos2d-x) 。所以,作爲解決方案,我在開始時創建了延遲時間爲零的序列,然後調用我的遊戲的暫停功能。我想遊戲需要在從背景恢復後進行一次處理。對你來說,如果上述不工作只是試試這個:

someNode->runAction(
    CCSequence::create(CCDelayTime::create(0.0f), 
     CCCallFuncO::create(CCDirector::sharedDirector(), 
          callfuncO_selector(CCDirector::replaceScene), 
          GameLevelScene::create()), 
     NULL)); 

someNode可以在你的遊戲,這是生活在遊戲中,即它並沒有被破壞任何節點;它必須是一個活着的對象。你可以有一個遊戲管理器節點,它在你的遊戲過程中始終處於活動狀態。遊戲管理器節點可以對這樣的遊戲管理問題負責。