0

不确定问题是否清楚,但我发现了这一点,并想知道每次特定精灵必须爆炸时调用这个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];
}

}

4

1 回答 1

1

我还没有遇到问题,但可能同时出现的目标少于 20 个。然而,阅读 cocos2d (2.0) 代码,CCAnimation 对象几乎是一个 POCO(普通的objective-c 对象:)):它似乎不保持任何状态。CCAnimate 就是这样做的。所以这些对象几乎是“只读的”,在放入缓存后不太可能改变,而且我看不到会导致类的任何 getter 方法出现问题的情况。我对此感到安全,使用中的线程模型极不可能发生。

于 2012-12-16T17:03:26.447 回答