使用CCSpriteBatchNode的好處是每個子項都不是由OpenGL單獨繪製的,因此如果屏幕上有許多相同的圖像,它將提高使用批處理節點的性能。CCSpriteBatchNode:使用單個框架還是整個紋理圖集?
但是,我很好奇,如果你將整個紋理圖集加載到CCSpriteBatchNode中會發生什麼;這是否意味着當你在紋理地圖集中使用單個精靈幀時,它正在(幕後)繪製紋理內的所有精靈幀?
換句話說,有沒有這樣做之間在性能上有什麼區別:
[[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFramesWithFile:@"texture.plist"];
CCSpriteFrame *starFrame=[[CCSpriteFrameCache sharedSpriteFrameCache] spriteFrameByName:@"throwstar.png"];
stars=[CCSpriteBatchNode batchNodeWithTexture:starFrame.texture];
[self addChild:stars];
或者,而不是僅僅使用整個紋理圖集,而不是starFrame.texture
批次的節點?
當你說batchnode繪製它的孩子時,它只能「畫」它們所有的一次,正確(在一批,一個GL呼叫)?但是你也提到每個孩子只會呈現其紋理的一部分。因此,如果多個孩子從同一個批次節點紋理中獲得不同的幀,那麼每個孩子都會得到自己的渲染調用,因爲它是紋理的不同部分? – johnbakers 2012-02-20 01:26:37