Chcę utworzyć akcję raz, a następnie dodać ją do wielu duszków. Na przykład, mam "potwora", który dostaje kilka nóg dodanych do jego ciała. Każda z tych nóg jest dziećmi ciała i chcę, aby obracały się tam iz powrotem. Zrobiłem CCRepeatForever
sekwencji dwóch akcji CCRotateBy
, która działa świetnie. Mogę dodać akcję do nogi, ale jeśli dodam ją do innej nogi, pierwsza noga nie obraca się.Stosując tę samą akcję dla wielu duszków?
Nie chcę tworzyć nowej sekwencji dla każdej nogi - co za ból! Musi być łatwy sposób!
EDIT: (! Jeszcze raz dziękuję Lukman)
I wprowadziły go w ten sposób, za gixdev i odpowiedzi Lukman za ...
[leg1 runAction:action]; // for the first time using the action
[leg2 runAction:[[action copy] autorelease]]; // for all subsequent uses
Musisz "zwolnić" to, co "kopiujesz", dlatego sugeruję '[leg1 runAction: [[action copy] autorelease]];' zamiast;) – Lukman
Oh, tak. To ważna część zarządzania świętą pamięcią =) – gixdev
Po prostu, aby było jasne, oryginalna 'CCAction' musi być utworzona za pomocą' alloc' i 'init', lub zrobiona jako' właściwość' do ponownego użycia w programie w ten sposób - w przeciwnym razie sam się autoreleased i nie będzie mógł być "skopiowany", prawda? – Steve