0

私は Cocos2D と CocosBuilder を初めて使用し、メモリの使用に関していくつか質問があります。

1) CocosBuilder (または Cocos2D) で、同じシーン内のすべての CCSprite オブジェクトに同じテクスチャ アトラス (スプライトシート) を使用すると、スプライトごとに個別のテクスチャよりもメモリ使用量を節約できますか? 正確には、1 つの 4k*4k テクスチャを使用する場合、ゲームは 1 つのテクスチャ アトラス (例: 4k * 4k * 32 ビット) だけのメモリを必要としますか?

2) メモリを節約するために、スプライトごとに異なるテクスチャ モードを使用できますか? たとえば、背景画像にアルファなしモードを使用します。つまり、Cocos2D は同じシーンで異なるテクスチャ モードを処理できますか?

3) シーンに約 100 個のオブジェクト、合計 3 つのシーンがあるゲームを実装する必要があります。現在、同じシーンのすべてのオブジェクトが同じスプライトシートを使用しています。それでも、シーンを数回切り替えると、ゲームがクラッシュします。me-warning メッセージを受け取るたびに。この問題を解決する最善の方法は何ですか? これらのキャッシュをすべてダンプしようとしましたが、それでもクラッシュしました。

どうもありがとう!

4

1 に答える 1

1

1) テクスチャから描画されるオブジェクトの数に関係なく、テクスチャは 1 回だけロードされます。一般に、単一のテクスチャを使用しても (多くの) メモリを節約することはできませんが、個々の画像ファイル テクスチャではなく、できるだけ少ないテクスチャ アトラスから描画することで、読み込み時間とレンダリング パフォーマンスを向上させます。

2) はい。たとえば、同じシーンに RGB565 (アルファなし)、RGB5551 (ブール アルファ)、または RGBA4444/RGBA8888 テクスチャを使用できますが、問題ありません。

3) 器具を使用する。漏れがないか確認してください。ARC を使用していない場合は、今が切り替え時です。PS: キャッシュを消去しないでください。最終的にはテクスチャを再度リロードする必要があるため、時間とメモリを浪費するだけです。その時点で使用されておらず、近い将来も使用されないことが確実なテクスチャをリリースしたい場合は、それらのテクスチャのみをキャッシュ解除します。

于 2013-05-01T01:03:45.513 に答える