0

レベルを選択するために左右にスワイプする必要があるレベル選択画面を、ゲームはどのように処理しますか? このようなゲームでは、レベルごとに異なるスプライトがあるようです (例: Amazing Alex)。

メモリのスペースをあまり取らずに、これほど多くのスプライトをロードできるのはなぜですか? それらは一度にメモリにロードされますか?そのような場合に使用される特別なテクニックはありますか? 私のゲーム レベルの選択では、それぞれに独自のスプライト (アイコン) を持つ 20 のレベルがあります。これらすべてのスプライトを一度に処理するにはどうすればよいでしょうか?

ユーザーが左右にスクロールしてレベルを選択すると、一度に最大 3 つのスプライトが画面に表示されることに注意してください。

例やリンクは役に立ちます。

4

1 に答える 1

1

私が作成したゲーム SmashTurtle では、http://ios.biomsoft.com/2011/11/28/a-paging-uiscrollview-in-cocos2d-with-previews/ のチュートリアルの UIScrollView スクロール コードを使用しました

SmashTurtle には 25 個の 200x200 ポイント ノードがあり、それぞれに複数のスプライトを追加して選択することができ、3gs デバイスで良好なパフォーマンスを達成し、新しいデバイスで良好なパフォーマンスを達成することができました。

選択したレベルのシーンが表示されるときに、すべてのスプライトをロードします。メモリの警告はなく、非常に高速にロードされます。25 個のスプライトを含む 1024x1024 シートを 1 つ読み込みます。また、ファイルから 25 個の個別のスプライトもロードします。ロード時間とドローコールのパフォーマンスは悪いですが、他に何も行われていないレベル選択シーンであるため、問題なく動作します。

別々のファイルから 25 のスプライトをロードする理由は、25 の悪意の 1 つだけを必要とするいくつかのレベルで別々のファイルにスプライトが必要であり、25 の別々のスプライトをスプライト シートに複製してバンドル サイズを大きくしたくないためです。 .

レベル選択シーンで 25 個の個別のファイルをロードするという奇妙な制約がなければ、レベル選択スクローラーのパフォーマンスを向上させることができたはずです。しかし、スプライト シートと 25 の個別のファイルをロードしても、パフォーマンスは 3gs で許容できるものでした。

于 2012-08-05T17:17:00.627 に答える