特定のキーが押されたときに他の機能を実行する機能があります。「s」を押すと、プレイヤーを撃ちます。「h」を押すと、プレイヤーに害を及ぼすだけです。問題は選択 = getch(); にあります。下:
void* command(void* data)
{
choice = getch(); //This is where the problem begins...
cout << "Command Prompt\n\n"; //I must click enter twice to view this output. why is this???
while (health > 0)
{
if (choice == 's')
{
playershot();
}
if (choice == 'h')
{
playerharm();
}
}
}
これが実行されると、何らかの理由で、コンソールは ENTER を 2 回押すのを待ってから、<< "コマンド プロンプト"; を実行します。2回のENTERの後のみ、「コマンドプロンプト」の出力が表示されます。なぜ getch() は私の文字と 2 つの ENTER を入力するのを待っているのですか? この関数から getch() を使用する他の場所では、正常に動作し、通常は Enter キーを押す必要はありません。このコードのどこが間違っていて、Enter キーを 2 回押して、最終的に「コマンド プロンプト」に移動するのですか? ありがとう。