我正在 XNA 中开发游戏,当我开始游戏时会弹出一个菜单。如果你按“空格”,游戏本身就会开始。我正在使用具有三种不同情况的游戏状态开关来执行此操作。虽然当我到达最后一个状态(游戏结束屏幕)并想通过按“空格”重新开始游戏时,除非你按住“空格”,否则它不起作用。
所以基本上。游戏从菜单屏幕开始。如果你按空格,游戏本身就会开始。如果你与任何东西相撞并死亡,你就会进入游戏结束屏幕。我想要它,以便您可以在按空格键时返回游戏运行,这是行不通的(除非您按住空格键并保持这种状态)
PS:如果需要,我愿意添加更多代码,请索取。提前致谢!
这是我的更新代码:
const int introMenu = 0, gameRunning = 1, gameOver = 2;
switch (gameState)
{
case introMenu:
if (ks.IsKeyDown(Keys.Space))
{
gameState = gameRunning;
}
break;
case gameRunning:
if(colliding)
{
gameState = gameOver;
}
break;
case gameOver:
if (ks.IsKeyDown(Keys.Space))
{
gameState = gameRunning; //NOT WORKING!
}
break;
}
这是我的绘图代码:
GraphicsDevice.Clear(Color.CornflowerBlue);
spriteBatch.Begin();
switch (gameState)
{
case introMenu:
background.Draw(spriteBatch);
break;
case gameRunning:
//draw the player, new background and everything nessecary
break;
case gameOver:
//draw new gameover background
break;
}
spriteBatch.End();
base.Draw(gameTime);