我的代码中的子弹似乎正在射击入侵者,因为入侵者消失了。然而,没有子弹从坦克中出来并击中入侵者。我不知道子弹去了哪里。
初始化子弹代码:
recBullet = new Rectangle();
isRight = true;
isShotFired = false;
isBulletOut = false;
isBulletAlive = true;
更新代码:
KeyboardState keys = Keyboard.GetState();
if ((keys.IsKeyDown(Keys.Space) == true || oldState.IsKeyUp(Keys.Space) == false))
{
recBullet.X = recTank.X + recTank.Width / 2;
recBullet.Y = screenHeight;
isShotFired = true;
isBulletAlive = true;
}if (isShotFired)
{
recBullet.Y -= 10;
}
if (recBullet.Y <= 0)
{
isShotFired = false;
}
for (int x = 0; x < numberOfXInvaders; x++)
{
for (int y = 0; y < numberofYInvaders; y++)
{
if (isBulletAlive)
{
if (recBullet.Intersects(recInvader[x, y]))
{
if (!isInvaderDead[x, y])
{
isInvaderDead[x, y] = true;
isBulletAlive = false;
}
}
}
}
}
oldState = keys;
绘制代码:
if (isBulletAlive)
{
spriteBatch.Draw(texBullet, recBullet, Color.Green);
}
感谢我能为此提供任何帮助!谢谢。
答案 0 :(得分:1)
执行以下步骤: