不确定问题是否清楚,但我发现了这一点,并且想知道每次特定精灵必须爆炸时调用 runExplosionAnimation 方法是否会有任何冲突。在我正在开发的游戏中,屏幕上可以有20个这样的精灵,我想知道是否可以让他们分享相同的动画(参见 animationByName:@“anAnimation”)或者如果两个精灵同时爆炸,这可能会导致一些运行时错误。
-(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];
}
}
答案 0 :(得分:1)
我还没有遇到问题,但目标目标少于20个。但是,在阅读cocos2d(2.0)代码时,CCAnimation对象几乎就是一个POCO(普通的Objective-c对象:)):它似乎没有维持任何类型的状态。 CCAnimate就是这么做的。因此,这些对象几乎是“只读”,在放入缓存后不太可能发生变化,并且我看不到会导致类的任何getter方法出现问题的情况。我觉得这很安全,使用线程模型的可能性很小。