XNA でゲームを作成していますが、ゲームを開始するとメニューがポップアップ表示されます。「スペース」を押すと、ゲーム自体が開始されます。これを行うために、3 つの異なるケースで gamestate スイッチを使用しています。最後の状態(ゲームオーバー画面)になって「スペース」を押してゲームを再開したいのですが、「スペース」を押し続けないと機能しません。
だから基本的に。ゲームはメニュー画面からスタート。スペースを押すと、ゲーム自体が開始されます。何かにぶつかって死ぬとゲームオーバー画面に。スペースを押したときにゲームの実行に戻ることができるようにしたいのですが、これは機能しません(スペースを押したままにしない限り)
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);