2013年2月4日月曜日

CCSpriteBatchをやっと使ってみた。確かにメモリ消費が減る。


やっとCCSpriteBatchを実装してみた。
同一で大量のspriteを描画する際に、メモリの圧迫がかなり抑えられ、便利。
 (延々、大量に描画し続けたら、途中から描画してくれなくなりましたが、自動的にsprite量は補充されるようです。Kobold2dの仕様かな?Cocos2dかな。私は今、Kobold2dを使っているので、Cocos2dの仕様とちょっと違ったことを書くことがあるかもしれません。)
 CCSpriteBatch *batch = [CCSpriteBatchNode batchNodeWithFile:@"test.png"]; [self addChild:batch];
    CCSprite *sp = [CCSprite spriteWithTexture:batch.texture];          
   sp.position=ccp(100,100);
 [batch addChild:sp z:1 tag:1];

   バッチをまず画像ファイルをもって準備しaddChildして、
 CCSpriteをそのバッチのテクスチャから作成し、
 もう一度batchにaddChildeする、というやり方の様子。

 [self addChild:batch];しても、別にまだ何も起きず、
 spriteをつくって、さらにbatch addChild:spriteする、というのは、
 若干面倒なようですが、メモリ消費を抑え、ありがたい限り。

 batchというのは、バッチファイル、みたいな感じで、「ひとまとまり」「塊」といった意味ですね。

 やっと使えました。

 ファイル画像を、sprite atlasにすれば、読み込み部分の画像ファイル名を指定してやることで、同一ファイルから違う部分を読み込み、別画像として使え、メモリ消費は抑えられる、という優れもの。

 今度は、それに取り組みます。
 TexturePackerというツールも手に入りましたので。

取り組みました→ http://learning-iphoneapp.blogspot.jp/2013/02/texturepacker.html

0 件のコメント:

コメントを投稿