所以我的想法是有一个特殊的子弹冻结敌人,一段时间后敌人解冻并继续他们的动作/动画。这是我所做的一个简单版本:
-(void)update:(ccTime)dt
{
CCSprite *enemySprite;
CCARRAY_FOREACH(enemies, enemySprite)
{
if (CGRectIntersectsRect(_bullet.boundingBox, enemySprite.boundingBox))
{
_bullet.visible = NO;
[enemySprite pauseSchedulerAndActions];
enemySprite.pausingDuration = CACurrentMediaTime() +5;
}
if (CACurrentMediaTime() > enemySprite.pausingDuration)
[enemySprite resumeSchedulerAndActions];
}
}
现在,我想我遇到的问题是enemySprite已经停止更新它的调度程序,所以下次调用更新方法时,已经暂停的enemySprite不会得到更新!我希望我知道一种更好的解释方式,但我认为任何专业的程序员都会立即看到这段代码有什么问题。请帮助我提出改进代码的建议,或者甚至只是一个想法将不胜感激,谢谢您的时间。