我有一个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
通过仅操纵该组精灵的父级来操纵一组。