自定义动画类

问题描述:

对于我的应用程序,我试图实现一个角色,他在走路时显示行走动画,并在空中显示跳跃动画。自定义动画类

使用Cocos2D,我创建了一个简单的动画。问题是我正在使用CCRepeatForever,并且我似乎无法停止动画或将其关闭后切换它。

Steffen Itterheim的书在关于精灵的章节中讨论了一些动画。他创建动画的方式是将多个精灵帧添加到CCAnimation对象,然后使用CCRepeatForever运行它。

我目前正在寻找两种可能性: 1)创建多个精灵并将它们添加到CCArray,然后遍历多个精灵。 2)找到CCRepeatForever的替代解决方案,找到停止动画或切换到其他动画的方法。

编号为1的问题是,我无法弄清楚如何将选择性精灵渲染到舞台上。它似乎是在屏幕上添加一个精灵的唯一方法是使用[self addChild:mySprite];如果我想在多个精灵之间切换,这是限制和问题的。有没有办法选择性渲染一个精灵? 编号为2的问题是,似乎没有CCRepeatForever的替代方法,其他动画类不足以运行动画。

谢谢!

+0

你可以阻止它停止动画,你需要给它一个标签/名称或什么的,我只是不能在此刻记住什么。 – 2012-02-06 21:33:04

假设您为以下操作指定标签。

CCSprite *sprite = [CCSprite spriteWithFile:@"image.png"]; 
CCRotateBy *spinAction = [CCRotateBy actionWithDuration:1 angle:90]; 
CCRepeatForever *spinForever = [CCRepeatForever actionWithAction:spinAction]; 
[spinForever setTag:ANIMATION_TAG]; 
[sprite runAction:spinForever]; 

您可以通过调用

[sprite stopActionByTag:ANIMATION_TAG]; 
+0

此外,您还可以使用 - (空)stopAction:\t \t(CCAction *)\t行动\t 去除运行动作列表中的动作 或 - (无效)stopAllActions \t \t \t 取消所有行动正在运行的动作列表 – Setrio 2012-02-06 22:02:56

+0

有一天这个答案将被接受。我有一个梦想。 – DaveIngle 2017-06-10 02:35:35