1

我用cocos2d创建了一个新项目,然后创建了一个图层和一个精灵。我正在尝试将动画应用于我的精灵,并且我找到了一些关于它的示例。但我不明白 和 之间的区别CCAnimationCCAnimate所以我还没有为我的精灵应用任何动画。

这两者有什么区别,它们的真正含义是什么?如何使用它们?

任何人都可以解释一下吗?请帮我。

4

1 回答 1

5

这是cocos2d-iphone 编程指南中“使用 Sprites 和 Sprite 批处理节点”中的代码:

......

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

如您所见,您需要同时使用CCAnimateCCAnimation在精灵上运行基于 CCSpriteFrame 的动画。根据描述CCAnimation

CCAnimation对象包含CCSpriteFrame对象,并且帧之间可能存在延迟。您可以CCAnimation使用动作为对象设置动画CCAnimate。例子:

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

一般来说,CCAnimation是框架容器的包装。CCAnimate是精灵需要做的动作——实际上它是 的子类CCAction,代表精灵可以“跑”的动作,比如移动、跳跃、旋转等。你可以使用它的其他子类来做一些种类在您的精灵上制作动画,而无需自己创建帧。尝试使用CCFadeIn,CCRotateBy等。

于 2012-05-09T07:32:31.780 回答