ここで私のゲームを続けます (プレイヤーが船になり、流星を撃墜するゲーム)。私は現在、弾丸を撃っている船に取り組んでおり、弾丸が当たった流星を取り除こうとしています. これが私がやったことです。もう少しで完了ですが、コーディングにエラーが見つかりました。私のゲームでは、マップの右側の外側に流星が発生し、左に移動します。ポイントはそれらを撃ち落とすことです。これは、流星を正しい順序で撃つと機能しますが、そうでない場合は機能しません。写真で説明しましょう。
2つ目の隕石を撃ち落とすとしたら、1番の隕石が先に破壊される
//spawns the enemies.
public void LoadEnemies()
{
int randY = random.Next(100, 500);
if (spawn > 1)
{
spawn = 0;
if (enemies.Count() < 4)
enemies.Add(new Enemies(Content.Load<Texture2D>("meteor"), new Vector2(1110, randY)));
}
//Here's where the error lies because of the bulletcolliding (I think)
for (int i = 0; i < enemies.Count; i++)
{
if (!enemies[i].isVisible || bulletColliding)
{
bulletColliding = false;
enemies.RemoveAt(i);
i--;
}
}
}
衝突法。
public void bulletCollision(GameTime gameTime)
{
foreach (var x in bullets)
{
foreach (var y in enemies)
{
enemy_rect = new Rectangle((int)y.position.X, (int)y.position.Y, 10, 10);
bullet_rect = new Rectangle((int)x.position.X, (int)x.position.Y, 10, 10);
if (bullet_rect.Intersects(enemy_rect))
{
bulletColliding = true;
}
}
}
}
基本的に、衝突した特定の隕石を取り除く方法がわかりません。あなたの助けが必要です. 私が得るすべての助けに感謝します。