Является ли пакетная анимация спрайтов более эффективной с одним спрайтом?(Cocos2d) - PullRequest
1 голос
/ 16 февраля 2012

В руководстве по программированию 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.Мой вопрос: будет ли пакетное рисование одного анимированного спрайта более эффективным, чем вообще не использовать пакетную обработку?Поскольку на каждом розыгрыше нарисован только один кадр и только один объект, я бы так не подумал.Единственное преимущество, которое я думаю, было бы, если бы вы добавили более одного объекта - чтобы они могли быть нарисованы по координатам фрейма из одной и той же текстуры за один чертеж.Верны ли мои рассуждения?

1 Ответ

1 голос
/ 16 февраля 2012

Благодаря ответам здесь:

http://www.cocos2d -iphone.org / forum / topic / 29354? Ответы = 3 # post-144515

Хотя бы одинчеловек подтвердил, что он не имеет никакой выгоды от одного объекта, но может немного снизить производительность из-за дополнительной сложности.

...