Cocos2d:如果两个精灵同时从CCAnimationCache运行相同的CCAnimation,是否有任何可能的运行时错误?

时间:2012-12-16 14:41:26

标签: ios caching animation cocos2d-iphone

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

}

1 个答案:

答案 0 :(得分:1)

我还没有遇到问题,但目标目标少于20个。但是,在阅读cocos2d(2.0)代码时,CCAnimation对象几乎就是一个POCO(普通的Objective-c对象:)):它似乎没有维持任何类型的状态。 CCAnimate就是这么做的。因此,这些对象几乎是“只读”,在放入缓存后不太可能发生变化,并且我看不到会导致类的任何getter方法出现问题的情况。我觉得这很安全,使用线程模型的可能性很小。