我的问题是,打飞机游戏中不可避免地会同时存在多个子弹对象,那么每一帧就有多个子弹对象的update()函数被调用,这个调用过程是什么样的?先调用哪一个对象的update()函数?在执行某一个update()函数内的语句时,会不会在中间插入其它对象update()函数内的语句?这里有没有涉及多线程问题?
附update()函数
void Bullet::update(float dt)
{
this->setPosition(ccpAdd(this->getPosition(),ccp(0,speed)));
CCArray * enemyArray = World::sharedWorld()->getArrayForEnemy();
for(int i=0;i!=enemyArray->count();++i)
{
Enemy * enemy =(Enemy*) enemyArray->objectAtIndex(i);
if(enemy->boundingBox().intersectsRect(this->boundingBox()))
{
enemyArray->removeObject(enemy);
World::sharedWorld()->removeChild(enemy,true);
World::sharedWorld()->removeChild(this,true);
}
}
}
崩溃提示:
