CCSpriteFrameCacheまたはCCSpriteBatchNodeをcocos2dアプリケーションに追加したときに何をするのか正確にはわかりません。誰かが次の点を説明してもらえますか(いくつか説明していただければ助かります。回答の前に、回答している質問に応じて対応する文字を書いてください)。
[すべての質問は、最高のパフォーマンスと最低のメモリ使用量の達成を意味します]
a)すべての単一レイヤーにスプライトシートを作成することは重要ですか?(例:メニュー-独自のスプライトシート、GameLayer-独自のスプライトシート...)
b)誰かが私がバッチノードにスプライトを追加しなければならない理由と、バッチノードが一般的に何であるかを説明できますか?
b1)それで、なぜ私は次のようなことをすることができないのですか?
[[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFramesWithFile:@"menusprites.plist"];
CCSpriteBatchNode *spriteSheet = [CCSpriteBatchNode batchNodeWithFile:@"menusprites.png"];
[self addChild:spriteSheet];
次に、を呼び出してスプライトをレイヤーに追加します
CCSprite *mySprite = [CCSprite spriteWithSpriteFrameName:@""];
[self addChild:mySprite];
それらをバッチノードに追加せずに?私が理解していることから、それはこのように機能するからです:
すべてのスプライトを含むスプライトシートを画面に追加します。次に、アプリがplistに入り、表示したいスプライトの座標を探して、画面に配置します。だからなぜ私は電話する必要があります
[spriteSheet addChild:mySprite];
?
c)スプライトシートが不要になったときに、メモリの目的でスプライトシートを削除するにはどうすればよいですか?