1

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 つしかないので、そうではないと思います。私が思う唯一の利点は、複数のオブジェクトを追加した場合です。これにより、1 回の描画で同じテクスチャからフレーム座標に描画できるようになります。私の推論は正しいですか?

4

1 に答える 1

1

ここでの返信に感謝します:

http://www.cocos2d-iphone.org/forum/topic/29354?replies=3#post-144515

少なくとも 1 人が、1 つのオブジェクトではまったくメリットがないことを確認しましたが、複雑さが増したためにパフォーマンスがわずかに低下する可能性があります。

于 2012-02-16T11:17:36.403 に答える