在这里继续我的游戏(玩家是一艘船并且你击落流星的游戏)。我目前正在船上射击子弹,我正试图在流星被子弹击中时移除它们。这就是我所做的。我快到了,但我在编码中发现了一个错误。在我的游戏中,在地图右侧之外会产生流星,它们会向左移动,关键是要将它们击落,如果你以正确的顺序射击流星,这是可行的,否则就不行。让我用一张图片来解释一下。
如果我要击落第二颗流星,标有数字 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;
}
}
}
}
基本上,我对如何移除被击中的特定流星一无所知,我需要你的帮助。我感谢我得到的所有帮助。