2012-12-16 33 views
0

不知道問題是否清楚,但是我發現並且想知道是否在這個runExplosionAnimation方法每當特定的精靈爆發時都會調用。在我正在開發的遊戲中,可以在屏幕上顯示20個精靈,我想知道是否讓他們共享相同的動畫(請參閱animationByName:@「anAnimation」),或者如果這可能會導致一些如果兩個精靈同時爆炸,則運行時錯誤爲Cocos2d:如果兩個精靈同時從CCAnimationCache運行相同的CCAnimation,那麼是否有任何可能的運行時錯誤?

-(void) runExplosionAnimation 
{ 
[self stopAllActions]; 

CCAnimation* anim = [[CCAnimationCache sharedAnimationCache] animationByName:@"anAnimation"]; 
if(anim!=nil){ 
    [self runAction:[CCSequence actions: [CCAnimate actionWithDuration:0.4f animation:anim restoreOriginalFrame:false], [CCHide action], nil]]; 
} 
else{ 
    [self loadSharedAnimationIfNeeded]; 
} 

}

回答

1

我還沒有遇到過的問題還沒有,但只有不到20個可能的同步指標。但是,讀取cocos2d(2.0)代碼時,CCAnimation對象幾乎就是一個POCO(普通的Objective-C對象:)):它似乎沒有維護任何一種狀態。 CCAnimate做到了這一點。所以對象幾乎是「只讀」的,放入緩存後不太可能改變,而且我不能看到會導致類的任何getter方法出現問題的情況。我覺得這很安全,使用線程模型時不太可能發生。

+0

一個非常明確的答案。在我對Cocos2d框架仍然不甚瞭解的時候,明確地向前邁進了一步。我現在很想了解更多關於使用線程模型的信息:)。 – mm24

相關問題