2017-11-10 15 views
1

こんにちは、私はC#でテキストアドベンチャーゲームを作っています。 ゲームを開始するときに、ゲームを開始するか終了するかを質問したいと思います。 これは私が始めたものです。c#キーを押したときにデバッガ/ cmd.exeを閉じる

`Console.WriteLine("Press Space to start the game!"); 
Console.WriteLine("Press Esc to quit the game!"); 
if (Console.ReadKey(true).Key == ConsoleKey.Space) 
{ 
    "My whole code of the game here" 
} 
if (Console.ReadKey(true).Key == ConsoleKey.Escape) 
{ 
    Don't know what to put here 
}` 

アプリケーション(コードを実行しているcmd.exe)をただ終了させる方法が見つかりませんでした。私はクラッシュする1つの方法を見つけましたが、それでもWindowsの警告メッセージが「動作を停止しました」というメッセージが表示されます。私は人々がこれを答える見つからなかったが、私は作品をテストしているものはいずれも、これらのいくつかはある :

`Environment.Exit(0) 

Environment.Exit 

Application.Exit 

this.Close(); 

return;` 

のいずれか何も起こらないか、私はメッセージが「動作を停止しました」を得ます。

このようにしてゲームを終了するためのコマンドを求めています。 そして、誰かがキーで質問に答えると、より良い解決策を持っている場合、私は私が

`if (Console.ReadKey(true).Key == ConsoleKey.Space)` 

答えて

1

を使用していますその代わりに、これだけでなく、それのために幸せになる私はあなたがブールフラグでwhileループを使用し、すべて置くべきだと思いますそこにロジックがあり、各反復で、押されたキーをスキャンし、エスケープであればwhileループフラグをfalseにし、それ以外の場合は続行します。

Console.WriteLine("Press Space to start the game!"); 
       Console.WriteLine("Press Esc to quit the game!"); 

bool isGameClose = false; 
     while (!isGameClose) 
     { 
      ConsoleKey pressedKey = Console.ReadKey(true).Key; 

      if(pressedKey == ConsoleKey.Spacebar) 
      { 
       Console.WriteLine("Game is On"); 
      } 
      else if(pressedKey == ConsoleKey.Escape) 
      { 
       isGameClose = true; 
      } 
     } 
     Console.WriteLine("Game Exited!"); 
+0

ありがとうございますが、私はCtrl + f5を使用しているので、f5だけでなく、「続けるために任意のキーを押してください」というスキップ方法はありません。そして、あなたがキーを押すのと同じようにそれをやめる。 –

関連する問題