2011-06-19 27 views
8

我想創建一個動作,然後將其添加到多個精靈。例如,我有一個「怪物」,它會將一堆腿添加到它的身體。每條腿都是身體的孩子,我希望它們來回旋轉。我做了一個CCRepeatForever兩個CCRotateBy行動的序列,這很有效。我可以將動作添加到腿部,但是如果我將其添加到不同的腿部,則第一條腿不會旋轉。在多個精靈上使用相同的動作?

我不想爲每條腿做一個新的序列 - 多麼痛苦!有一個簡單的方法!

編輯:(!再次感謝盧克曼)

我實現了它這樣的,每gixdev和盧克曼的答案...

[leg1 runAction:action]; // for the first time using the action 
[leg2 runAction:[[action copy] autorelease]]; // for all subsequent uses 

回答

10

如果複製您創建一次行動就幫你

[leg1 runAction:[action copy]]; 
[leg2 runAction:[action copy]]; 
... 
+3

你需要'釋放'你'複製',因此我建議'[leg1 runAction:[[action copy] autorelease]];'而不是;) – Lukman

+0

哦,是的。這是神聖的內存管理的重要部分=) – gixdev

+0

只是要清楚,最初的'CCAction'需要用'alloc'和'init'創建,或者作爲一個'property'作爲一個屬性在整個程序中以這種方式重用 - 否則它會自動釋放,不能被「複製」,對吧? – Steve