我有一个CCSpriteBatchNode这样的配置:
CCSpriteBatchNode
ChildA1
ChildB1
ChildB2
....
ChildB999
ChildA2
ChildA3
...
所有孩子(ChildA1,ChildB1,ChildA2 ...)都是CCSprite对象。CCSpriteBatchNode和所有子代但是ChildA1通过以下方式创建:
[CCSprite spriteWithSpriteFrameName:@"FileName.png"];
ChildA1是这样创建的:
// Create Parent Sprite
CCSprite* childA1 = [[CCSprite alloc] init];
childA1.contentSize = CGSizeMake(37.5,37.5);
childA1.anchorPoint = ccp(0,0);
[batchNode addChild:childA1 z:0 tag:1];
// Add Child Sprites
[childA1 addChild:childB1 z:0 tag:1];
[childA1 addChild:childB2 z:0 tag:1];
[childA1 addChild:childB3 z:0 tag:1];
// Continue adding childB4-childB999
注意:这渲染得很好,我看到了我期望的输出,其中childB1的位置相对于childA1,并且移动childA1导致childB1移动。
我的问题是:我是否会在每个childB1-的绘图中看到性能提升childB999?据我了解,通过将所有子元素绘制在一起来CCSpriteBatchNode优化 a 中所有子元素的CCSpriteBatchNode绘制CCSprites。这是否也适用于那些孩子CCSprites?
对于那些想知道我为什么这样做的人:这个游戏中有很多层,并且CCSprites在 aCCSprite内分组CCSpriteBatchNode允许我CCSprites通过仅操纵该组精灵的父级来操纵一组。