1

メイン シーン (ゲーム シーン) と「構成」シーンに移動するボタンを備えた Cocos2d のゲームがあります。ユーザーがメイン シーンの [構成] ボタンをクリックすると、pushScene を使用して「構成」シーンに移動します。pushScene を使用する理由は、ユーザーが中断したところからゲームを再開できるようにするためです。

「構成」シーンには、「キャンセル」と「OK」の 2 つのオプションがあります。ユーザーが「キャンセル」を押した場合、私は popScene を使用し、ゲームを中断したところから再開します。ユーザーが「OK」を押した場合、replaceScene を使用します。これは、ゲームを最初から新しい構成で開始するためです。

ユーザーが「OK」を押すと、「構成」シーンが新しいゲーム シーンに置き換えられることはわかっていますが、古いゲーム シーンも置き換えられますか? それ以外の場合、私は物事を正しく行っていますか、それともゲームシーンに再開または再起動する必要があるかを知らせる別の方法を実装する必要があります.

差し替えられていないシーンを蓄積してメモリ リークを起こさないようにしたい。

4

1 に答える 1

2

replaceScene メソッドは、それが言うことを行います。現在のシーンを置き換えます。10 個のシーンを互いにプッシュした場合、10 番目のシーンが置き換えられ、以前のすべてのシーンが残ります。

これが、pushScene の使用をお勧めしない理由の 1 つです。シーンがポップされるよりもプッシュされる可能性がある状況を忘れがちです。もう 1 つの理由は、popScene をトランジションでアニメーション化できないことです。

ところで、pushScene の後に replaceScene を実行し、次に新しく置き換えられたシーンで popScene を実行すると、この動作を簡単にテストできます。昔の風景が浮かび上がります。通常、スタックにシーンが 1 つだけある popScene を実行すると、アサーションがスローされます。

于 2012-09-29T20:01:11.010 に答える