Я пытаюсь запрограммировать консольную игру, и игрок должен иметь возможность открывать сундуки. Чтобы сделать это, пользователю нужно нажать «E» лицом к сундуку (не очень важно для вопроса, просто дать контекст), а затем появится меню, запрашивающее ввод с помощью cin.
Итак, я использую GetAsyncKeyState ('E'), чтобы обнаружить нажатие клавиши 'E'. Все идет по плану, срабатывает при нажатии «E» и открытии «меню инвентаря». Проблема в том, что теперь пользователь уже написал «e» (или несколько) в консоль.
Я хочу, чтобы этого не происходило, так как пользователь должен будет вернуться назад, чтобы ввести желаемый ввод.
if(GetAsyncKeyState('E')){
int choice;
cout << "Inventory Menu" << endl;
cout << "1 - Take item" << endl;
cout << "2 - Store item" << endl;
cin >> choice; //there's already an 'e' on the console
}