1

私はいくつかのレベルがあるiPhoneゲームを書いています。プレイ中、ユーザーはメニューを使用してゲームを終了し、レベル選択画面に戻ることができます。これを行うために、一連のUIViewControllerでUINavigationControllerを使用しています。プレイヤーが終了することを選択すると、ゲームビューがスタックからポップされ、レベル選択メニューが表示されます。ゲームは最初は問題なく実行されますが、プレーヤーがレベルを終了してから同じレベルまたは別のレベルをプレイしようとすると、問題が発生します。

ゲームビューコントローラー(cocos2dシーンを表示)は、ゲームコントローラーシングルトンのメンバー変数です。ユーザーが「もう一度プレイ」をクリックすると、このゲームコントローラーはゲームの状態をリセットします。cocos2dレイヤーがクリアされ、ゲームが開始状態にリセットされます。この後、ゲームビューは再びスタックにプッシュされます。ただし、今回はcocos2dは更新されません。画面は前のゲームの最後のフレームがフリーズしただけです。

なんらかの理由で、cocos2dビューがポップされてからプッシュされると、次のコマンドを使用しても更新が停止するようです。

[[CCDirector sharedDirector] resume];

誰かがこの問題の経験を持っていますか、そしてそれをどのように回避することができますか?

4

2 に答える 2

3

ゲームビューコントローラーがポップさ[[CCDirector sharedDirector] stopAnimation]れると、が呼び出されるため、ゲームビューコントローラーをスタックに再度プッシュした後、を呼び出す必要があります[[CCDirector sharedDirector] startAnimation]

お役に立てれば。

于 2012-10-02T07:51:11.543 に答える
0

私はそのようにそれを試してみます:

[self resumeSchedulerAndActions];
    for(CCSprite *sprite in [self children]) {
        [[CCActionManager sharedManager] resumeTarget:sprite];
    }
于 2012-06-22T17:07:14.920 に答える