2010-10-03 99 views

回答

0

我遵循的一種方法是我從sprite類創建派生類並在類初始化中分配動作。

比如我有產生10-100敵人精靈

我會從CCSprite

派生的類enemyActoor.mm

他們我保持功能

+(void)initwithParamters:(CCPoint)spwanPoint frames:(NSString *)plist{ 

mummyActor *tempInstance =[mummyActor spriteWithWatever suites ur reqirment]; 

//do all stuff here 
//load actions 

return tempInstance; 

} 
//other methods to call actions or access mutators 

,當我需要生成這些敵人我創建n NSMuTableArray enemyLoaded並保持此數組中的所有實例...

當應用各種尋路算法或規則時每場比賽我訪問的每個對象從這些陣列///

對不起,我英文不好,但是這是我發現至今完成工作,而不要求任何人的最佳途徑;)

+0

嗯。我找到了一些東西。我已經定義了「行動」,並且我使用這個動作來動畫我的精靈。但是當我想在這個相同的精靈上以後運行另一個動畫時,我會收到EXC_BAD_ACCESS。但是當我使用「動作」,然後做這樣的事情:「動作= [動畫newAnim];」,然後運行在這個精靈上,一切工作正常。但是我不想在遊戲中創建新的動作,但是在init函數中,然後運行它。 – msmialko 2010-10-04 18:35:30

+1

嗨,我知道這個問題有點老,但我現在有同樣的問題,只是想檢查一下,如果你弄明白了。 – 2011-09-14 01:40:38

0

可以使用總是一個行動id,然後分配你的精靈,一個動作。像這樣

id myAction = [CCMoveBy actionWithDuration:0.2f position:myPoint]; 
id mySecondAction = [CCRotateBy actionWithDuration:0.2f angle:myAngle]; 
id actionSequence = [CCSequence actions: myAction, mySecondAction, nil]; 

然後通過所有你的精靈運行,並附加動作。如果你有一個陣列我們for in方法,因爲它更快。

for (CCSprites mySprites in myArray) { 
    //attach actions to sprites code here 

}