重置或重复使用CCAnimate操作

时间:2011-11-16 22:50:48

标签: iphone cocos2d-iphone

我正在使用CCAnimate来动画我的CCAnimations。我想要的是重用CCAnimate动作,因此,当我想播放另一个动画时,我会做类似的事情:

[_animateAction setAnimation:animation];

这个工作更少,问题是动画的内部经过时间没有重置,setAnimation只是设置新的动画。有没有办法在cocos2D中重置一个动作?我一直潜伏在代码和文档中,似乎没有任何方法可以实现这一点。

有谁知道这种情况下的“最佳做法”是什么?。

1 个答案:

答案 0 :(得分:1)

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

尽管如此,这就是它应该用于Cocos2D操作的方式,因此在您重新使用相同的动画操作时,您必须再次向其发送相应的init ...消息:

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

作为旁注,Cocos2D问题跟踪系统中已有suggestion for mutable actions两年了。如果没有使用当前Cocos2D版本进行修改,提交的代码补丁将无法运行,但如果需要,它可用于创建您自己的可变操作。