0

cocos2d で 1 つのレベルを作成し、画面に一時停止ボタンを配置しました。一時停止画面をクリックすると、メニューが開きます(再開、再起動、設定)。再起動メニューをクリックすると、レベルが最初から開始されるようにしたいです。私が試したことは、そのレイヤークラスを削除して再度呼び出しましたが、機能しませんでした。Scene を置き換えてみました。どちらも機能しませんでした。どうすればそれを達成できますか? 私はこれを試してみましたが、うまくいきます。

[[CCDirector sharedDirector] resume];
    [[CCDirector sharedDirector] pushScene:[HelloWorldLayer node]];

しかし、私が pushScene を何度も呼び出していると書いてありますか? それは私のゲームに影響しますか?今までは、もう一度再起動したい HelloWorldLayer を削除しています。

4

1 に答える 1

0

replaceScene を使用する必要があります。pushScene を使用すると、前のシーンの割り当てが解除されないため、アプリは最終的にメモリ不足になります。

必ず新しいシーンを作成してください (コード サンプルのように)。すでに実行中のシーンで replaceScene を呼び出そうとしないでください。失敗します。

また、replaceScene の後にシーンの割り当てが解除されていることも確認する必要があります。dealloc メソッドにブレークポイントを設定します。割り当てが解除されない場合、これはシーンがリークしていることを意味し、あらゆる種類の奇妙な問題につながる可能性があります。

于 2013-02-08T12:22:05.860 に答える