我正在尝试从我的子弹向量中删除“死”子弹。每一帧,我都调用 Bullet::update() 函数,如下所示:
void Bullet::update()
{
for(int i = 0; i != mAmmo.size(); i++)
{
if(mAmmo[i].sprite.getPosition().x > 700)
mAmmo[i].mAlive = false;
if(mAmmo[i].mAlive == false)
{
// I get a Debug Assertion Failed at runtime from this piece of code
mAmmo.erase(mAmmo.begin()+i);
}
if(mAmmo[i].mAlive == true)
{
mAmmo[i].sprite.move(mMovement);
}
}
}
我这样做完全不正确吗?这是我第一次真正使用向量,而不仅仅是遵循教程。如果我需要发布更多代码,请告诉我。在过去的几个小时里,我一直在研究这个,所以我有点绝望地想让它工作。
提前致谢!