まず、私の英語には申し訳ありません。 私はコンソールゲームを作ろうとしていました。ゲームの最後に、キーボードの矢印キーを使用して「はい」または「いいえ」を選択することによって、ユーザーがゲームを続行するかどうかを選択できるようにしたかった。しかし、今は変だと思う。矢印キーを押すと、カーソルが動くはずですが、それはちょっとしたことだけで、「はい」を選択することに戻ります。私は本当にここで何が起こっているのか分かりませんでしたので、なぜこれが起こっているのか知っている人に尋ねたいと思っていました。私が間違っていることを教えてください。 ありがとうございます。なぜ私の_getch()が正しく動作していないのですか?
void askForRestart() {
bool yesOrNo = true;
system("cls");
cout << "You died." << endl;
cout << "Restart?" << endl;
cout << "> YES" << endl << " NO";
while (true) {
int arrowKeycode = 0;
switch (arrowKeycode = _getch()) {
case KEY_ENTER:
break;
default:
if (yesOrNo) {
yesOrNo = false;
system("cls");
cout << "You died." << endl;
cout << "Restart?" << endl;
cout << " YES" << endl << "> NO";
break;
}
else {
yesOrNo = true;
system("cls");
cout << "You died." << endl;
cout << "Restart?" << endl;
cout << "> YES" << endl << " NO";
break;
}
}
cin.clear();
//cin.ignore(10000, '\n');
}
}
はい実際に上記のEnterキーのキーコードを定義しました。だから、私がやっていることは、getchがkeycodeを入力してキーを返さない場合は、再度尋ねます。しかし、それはちょうど2番目のループのためにゲッチに入ることなく、はいに戻ります。 –