2012-03-14 14 views
1

imさまざまなシーン(設定、about、新しいゲームなど)を持っていて、ボタンを押すだけでシーンを変更する従来のメニューシステムを使用しないゲームを作成するまたはそのようなものですが、メニューは実際のゲームに組み込まれています(ボタンはゲームレイヤーに配置されています)。 ボタンを押すと、ゲームのロジックに基づいて異なるレイヤーが表示されます(画面全体を埋めることができます)。アイデアは常にゲームレイヤを表示することです(ゲームの状態は変わらず、パラメータを変更してもゲームレイヤを初期化する必要はありません)。レイヤーには、ボタンや、スクロールできるさまざまなスプライトのリストが含まれています。cocos2dのシーンとレイヤー

私の最大の懸念は、画面上の多くの画像のためにパフォーマンス/メモリが低下することです(ゲームレイヤーには最大100個のスプライトが含まれている可能性があります。常にゲームレイヤーの前にレイヤーがある場合レイヤーが一時停止して非表示になります)。

ゲームシーンのセットアップ:

  • ゲーム層
  • メニュー層
  • ダイナミック層(いくつかのボタンが押されたときに追加された層)

私は、ダイナミックレイヤーを変更希望の場合場面にはそれは違うだろうか? (新しいレイヤーを作成するのではなく、新しいシーンを作成し、それをゲームレイヤーを殺すことなくシーンスタックにプッシュするだけです)。これらの2つのアプローチは同じですか、あるいは重要な違いがありますか?

答えて

0

この場合、pushScene/popSceneを使用することをお勧めします。それはあなたに多くの問題を保存します。例えば、バックグラウンドシーンは自動的に一時停止されます。

メモリ消費量はほぼ同じである必要があります。ゲームで使用されるメモリのほとんどすべてがテクスチャメモリとオーディオバッファですので、メモリ内にいくつのスプライトがあるかも心配しないでください。

+0

ダイナミックレイヤーには、約100種類のテクスチャ/画像+ゲームレイヤーに含まれるテクスチャが表示されます(20とします)。画像ピッカーをゲーム内に置いて、あなたのデバイスで。それで、なぜ私はどちらを使うべきか尋ねています。シーンを使用するとゲームを一時停止するなどの利点がありますが、一時停止しているシーンをアクティブなものから操作することは可能です(その機能を呼び出す)? – blejzz

0

いいえ、シーンに1つのレイヤーを使用する必要があります。 サブレイヤーではなくccspriteを使用してください。 シーンをすべてshareDirectorに入れた場合。それはゆっくりと可能なクラッシュになるでしょう。

+0

スタックには最大2つのシーンがあります.1つはゲームがあり、もう1つはダイナミックシーンです。 – blejzz

関連する問題