2011-11-16 50 views
1

我正在使用CCAnimate来动画我的CCAnimations。我要的是重用CCAnimate动作,所以,当我想玩另一个动画我做这样的事情:重置或重复使用CCAnimate动作

[_animateAction setAnimation:animation]; 

此作品更矿少,问题是,内部经过时间的动画不会被重置, setAnimation只是设置新的动画。有什么方法可以重置cocos2D中的动作吗?我一直在潜伏着代码和文档,而且似乎没有任何方法可以实现这一点。

有没有人知道在这种情况下什么是“最佳做法”?

回答

1

关于在Cocos2D中重复使用操作,存在很多混淆。显然,文档说你应该再次“初始化”这个动作,但是这可能不适用于所有动作,并且将“init ...”消息再次发送到已经存在的对象当然被认为是不好的做法。这与你不应该手动发送dealloc到一个对象类似,但你可以做到这一点。

然而,这就是它应该是对的Cocos2D动作,所以你的情况重新使用相同的动画动作,你将不得不再次发送相应的init ...消息的方式:

[animation initWithDuration:5 animation:anim restoreOriginalFrame:YES]; 
[_animateAction setAnimation:animation]; 

作为一个方面说明,Cocos2D问题跟踪系统中存在两年的suggestion for mutable actions。提交的代码补丁不会在没有对当前Cocos2D版本进行修改的情况下运行,但可以在需要时用于创建您自己的可变行为。

+0

那么,这正是我的想法,但似乎并不是一个好的选择。不是因为你的答案不好,而是科科斯这样做的方式。无论如何,感谢您的时间,我想我会尽力完成这一点。我将这个标记为正确的,因为这不是一个很好的解决方案,如果你没有编写自己的动画系统,现在是唯一的解决方案。 – Notbad