我很困惑在cocos2d中使用动画......我有一个精灵,它有3种类型的动画,就像笑脸笑,哭泣和眨眼......而且我为每一个都有单独的精灵表动画......我怎样才能在同一个精灵上使用这些动画......有人可以帮我吗???
此致
苏拉杰
答案 0 :(得分:0)
将所有动画放在同一个精灵表上要容易得多,因为如果你的精灵使用CCBatchnode来做它的绘制方法,你就可以从一张纸上删除它,然后读取它到另一个。
在CCSprite子类中,将一些CCAction设置为实例变量。
在初始化方法中,编写这些操作并将它们存储到实例变量中。
然后当你想使用动画时,告诉你的精灵运行它。
E.g。
NSMutableArray *smileFrames = [NSMutableArray array];
[smileFrames addObject:[[CCSpriteFrameCache sharedSpriteFrameCache] spriteFrameByName:@"character_smile.png"]];
[smileFrames addObject:[[CCSpriteFrameCache sharedSpriteFrameCache] spriteFrameByName:@"character_smile2.png"]];
[smileFrames addObject:[[CCSpriteFrameCache sharedSpriteFrameCache] spriteFrameByName:@"character_smile3.png"]];
CCAnimation *smileAnim = [CCAnimation
animationWithFrames:smileFrames delay:0.2f];
self.smileAction = [CCSequence actions:
[CCAnimate actionWithAnimation:smileAnim restoreOriginalFrame:NO],
[CCCallFunc actionWithTarget:self selector:@selector(smileFinished)],
nil];
然后你只需使用..
[sprite runAction:smileAction];
我在动画结束时添加了一个CCCallFunc,因为您可能希望在完成后恢复为空闲动画。
当精灵被取消分配时,不要忘记释放任何保留的动作。