for (int i = 0; i < 1000; i++) { CCSprite *sprite = [CCSprite spriteWithSpriteFrameName:@"buster.png"]; sprite.visible = NO; [self addChild:sprite]; }
極端ですが、
こんな感じで最初に1000個のスプライトを生成しておいて
使うときに visible = YES
使い終わったら visible = NO
で使う方法がありますが、これですとメモリの無駄使いになりますよね。
かと言って使うたびに生成
CCSprite *sprite = [CCSprite spriteWithSpriteFrameName:@"buster.png"]; [self addChild:sprite];
してたらパフォーマンスに影響が出るかもしれません。
そこら辺の線引きはみなさんどうしているんでしょうか?
走査するときも毎フレーム1000個と考えると怖いですよね。
CCSprite *sprite; CCARRAY_FOREACH(self.children, sprite){ if (sprite.visible) { CCLOG(@"%d_isVisible",[self.children indexOfObject:sprite]); } }
結論として3GSでカクつかないように調整すればいいです。(適当)