1

cocos2dで新規プロジェクトを作成し、レイヤーとスプライトを作成します。スプライトにアニメーションを適用しようとしていますが、それに関するサンプルがいくつか見つかりました。CCAnimationしかし、との違いがわからないCCAnimateので、まだスプライトにアニメーションを適用していません。

これら2つの違いは何ですか?また、それらの本当の意味は何ですか?それらを使用する方法?

誰かがそれについて私に説明できますか? 私を助けてください。

4

1 に答える 1

5

cocos2d-iphone Programming Guide の「Working with Sprites, and Sprite batch nodes」のコードを次に示します。

......

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]]];

ご覧のとおり、スプライトで CCSpriteFrame ベースのアニメーションを実行するには、CCAnimateとの両方を使用する必要があります。CCAnimationの説明によるとCCAnimation:

CCAnimationオブジェクトにはオブジェクトが含まれておりCCSpriteFrame、フレーム間に遅延が生じる可能性があります。アクションCCAnimationを使用して、オブジェクトをアニメーション化できます。CCAnimate例:

[sprite runAction:[CCAnimate actionWithAnimation:animation]]; 

一般的に言えば、CCAnimationフレームコンテナのラッパーです。CCAnimateは、スプライトが実行する必要があるアクションです。実際には、CCAction移動、ジャンプ、回転など、スプライトが「実行」できるアクションを表す のサブクラスです。他のサブクラスを使用して、いくつかの種類の操作を実行できます。自分でフレームを作成せずに、スプライトでアニメーションを作成できます。、 などCCFadeInで試してみてください。CCRotateBy

于 2012-05-09T07:32:31.780 に答える