我用cocos2d创建了一个新项目,然后创建了一个图层和一个精灵。
我正在尝试将动画应用到我的精灵中,我发现了一些关于它的示例。但我不明白CCAnimation
和CCAnimate
之间的区别,所以我还没有为我的精灵应用任何动画。
这两者之间的区别是什么?它们的真正含义是什么?如何使用它们?
任何人都可以向我解释一下吗?请帮帮我。
答案 0 :(得分:5)
以下是"Working with Sprites, and Sprite batch nodes"中cocos2d-iphone Programming Guide的代码:
......
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]]];
如您所见,您需要同时使用CCAnimate
和CCAnimation
在精灵上运行基于CCSpriteFrame的动画。每个CCAnimation
的说明:
CCAnimation
对象包含CCSpriteFrame
个对象,以及帧之间可能存在的延迟。您可以使用CCAnimation
操作为CCAnimate
对象设置动画。例如:
[sprite runAction:[CCAnimate actionWithAnimation:animation]];
一般来说,CCAnimation
是框架容器的包装器。 CCAnimate
是精灵需要做的动作 - 实际上它是CCAction
的子类,它表示精灵可以“运行”的动作,例如移动,跳跃,旋转等。您可以使用其他子类在您的sprite上执行某些类型的动画,而无需自己创建帧。试试类似CCFadeIn
,CCRotateBy
等