После нажатия и начала обработки нажатия клавиши методом _kbhit() и последующим получение обработанной клавиши (_getch()) очищается консоль
Есть код с циклом выглядит примерно так:
void key_event_handler() { // Обработчик
if (_kbhit())
{
std::cout << _getch() << std::endl;
if (_getch() == 'd' && x_direction != -1) {
y_direction = 0;
x_direction = 1;
}
if (_getch() == 'a' && x_direction != 1) {
y_direction = 0;
x_direction = -1;
}
if (_getch() == 'w' && y_direction != 1) {
x_direction = 0;
y_direction = -1;
}
if (_getch() == 's' && y_direction != -1) {
x_direction = 0;
y_direction = 1;
}
int main() {
while (true) {
key_event_handler(); // Вызов обрабочика
// 1. ...
// 2. ...
std::cout << "Тут что то пишется" << std::endl;
Sleep(400);
system("cls");
}
}
Проблема в том, что при обработке функцией key_event_handler() всё что до обработки было в консоли удаляется и на n-секунд консоль пуста (ну или в ней написан код клавиши которая нажата см. 4 строку). Не подскажете как исправить? Буду благодарен!