2011-11-16 51 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