やっと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
取り組みました→ http://learning-iphoneapp.blogspot.jp/2013/02/texturepacker.html
0 件のコメント:
コメントを投稿