2012-03-28 10 views
0

Cocos2dを使用して同じスプライトでよりうまく動作する方法をいくつか推奨する必要があります。Cocos2dを使用して同じスプライトで作業する

画面上に10以上の全く同じスプライトを持つアプリケーションのパフォーマンスとメモリ使用量を改善する方法。

私が見つけた唯一の改善がメモリに再びそれらをロードすることはありませんが、このCCSprite *newSprite = [CCSprite spriteWithTexture:[oldSprite texture]];

答えて

2

のようなものを使用し、私はあなたがテクスチャメモリにちょうど1イメージをロードし、それを再利用することができ、あなたがCCBatchnodeの使用をお勧めします。

http://www.raywenderlich.com/1271/how-to-use-animations-and-sprite-sheets-in-cocos2d

レイはspritesheetsを説明ここに偉大なチュートリアルがあります。

+0

* CCBatchnodeでは、1つの画像をテクスチャメモリにロードして再利用することができます。私は共通のテクスチャの配列を作成し、[CCSprite spriteWithTexture:[** needTextureSprite texture **]]を使って新しいスプライトを作成します。 – Buron

+1

CCBatchnodeは、すべての子の描画メソッドをすべて処理します。 CCSpriteは1秒間に6つの描画メソッドを実行しますが、CCBatchnodeは10ですが、10個のCCスプライトがある場合、60個の描画メソッドと10個のCCスプライトがCCBatchnodeの子であり、10個の描画メソッドしか呼び出されません。それはもっと早くです。 [CCSprite spriteWithSpriteFrameName:@ "myFrame.png"]を使って簡単にスプライトと呼ぶことができます。 spriteWithTextureを絶対に使用する必要がある場合は、表示フレームを設定する必要があることを忘れないでください。 spriteWithTextureにドリルダウンして、それが何であるかを調べてください。 – Bongeh

+0

ああ、本当に説明に感謝します! – Buron

関連する問題