弾丸のベクトルから「死んだ」弾丸を取り除こうとしています。すべてのフレームで、次のような 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);
}
}
}
私はこれを完全に間違っていますか?チュートリアルに従うだけでなく、ベクトルを実際に使用したのはこれが初めてです。さらにコードを投稿する必要がある場合は、教えてください。私は過去数時間これに取り組んできたので、これを機能させるために少し必死です。
前もって感謝します!