2011-06-19 24 views
8

Bir kez bir eylem oluşturmak ve daha sonra birden fazla sprite eklemek istiyorum. Örneğin, vücuduna bir demet bacak eklenmiş bir 'canavar' var. Bu bacakların her biri vücudun çocuklarıdır ve ben onları ileri geri döndürmelerini istiyorum. Harika çalışan iki CCRotateBy eyleminin bir dizi CCRepeatForever yaptım. Eylemi bir bacağa ekleyebilirim, ancak daha sonra farklı bir bacağa eklediğimde, ilk bacak dönmez. Ne bir ağrı -Aynı eylemi birden fazla sprite üzerinde mi kullanıyorsunuz?

Her bacak için yeni bir diziyi yapmak istemiyorum! Kolay bir yol olmalı!

DÜZENLEME: (! Teşekkürler TEKRAR Lukman)

Ben gixdev ve Lukman en cevapları başına, bunu böyle hayata ...

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

cevap

10

senin bir zamanlar sağladığı işlemleri kopyalarsanız size

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

sen 'sen' copy', böylece ben öneririm neyi release' gerekir '[leg1 runAction: [[eylem kopya] sallanmasını]];' yerine;) – Lukman

+0

Ah, evet. Kutsal bellek yönetiminin önemli bir parçası =) – gixdev

+0

Sadece açık olmak gerekirse, orijinal 'CCAction' 'tahsis' ve 'init' ile yaratılmalı veya bu şekilde bir programda yeniden kullanılmak üzere 'özellik' olarak oluşturulmalıdır. - aksi takdirde kendiliğinden yayınlanacak ve "kopyalandı" mevcut değil, doğru mu? – Steve

İlgili konular