2012-02-16 47 views
1

在cocos2d的programming guide有以下代碼:使用單個精靈進行批處理動畫精靈效率更高嗎? (cocos2d的)

CGSize s = [[CCDirector sharedDirector] winSize]; 
CCSprite *sprite = [CCSprite spriteWithSpriteFrameName:@"grossini_dance_01.png"]; 
sprite.position = ccp(s.width/2-80, s.height/2); 

CCSpriteBatchNode *batchNode = [CCSpriteBatchNode batchNodeWithFile:@"animations/grossini.png"]; 
[batchNode addChild:sprite]; 
[self addChild:batchNode]; 

NSMutableArray *animFrames = [NSMutableArray array]; 
for(int i = 1; i < 15; i++) { 
    CCSpriteFrame *frame = [[CCSpriteFrameCache sharedSpriteFrameCache] spriteFrameByName:[NSString stringWithFormat:@"grossini_dance_%02d.png",i]]; 
    [animFrames addObject:frame]; 
} 
CCAnimation *animation = [CCAnimation animationWithName:@"dance" delay:0.2f frames:animFrames]; 
[sprite runAction:[CCRepeatForever actionWithAction: [CCAnimate actionWithAnimation:animation restoreOriginalFrame:NO] ]]; 

它增加了一個簡單的動畫中的幀的一個陣列的形式,並增加了將這些幀動畫成CCSpriteBatchNode子畫面。我的問題是:將批處理繪製一個單一的動畫精靈比沒有使用批處理更高效嗎?由於在每次抽獎和只有一個對象只畫出一幀,我不會這麼想。我認爲唯一的好處是如果你添加了多個對象 - 這樣他們就可以在同一個紋理中以相同的紋理繪製在他們的框架座標上。我的推理是否正確?

回答