Я работаю над игрой в 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);