Преимущество использования CCSpriteBatchNode заключается в том, что каждый из его дочерних элементов не отрисовывается отдельно в OpenGL, поэтому, если у вас много одинаковых изображений на экране, это повышает производительность при использовании пакетного узла.
Однако мне любопытно, что произойдет, если вы загрузите целый атлас текстуры в CCSpriteBatchNode; Означает ли это, что когда вы используете один спрайт-кадр в этом текстурном атласе, он рисует (за кадром) все спрайт-кадры внутри текстуры?
Другими словами, есть ли разница в производительности между этим:
[[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFramesWithFile:@"texture.plist"];
CCSpriteFrame *starFrame=[[CCSpriteFrameCache sharedSpriteFrameCache] spriteFrameByName:@"throwstar.png"];
stars=[CCSpriteBatchNode batchNodeWithTexture:starFrame.texture];
[self addChild:stars];
Или вместо этого просто использовать весь текстурный атлас, а не starFrame.texture
для пакетного узла?