Я пытаюсь получить последнюю нажатую клавишу клавиатуры, но так как я работаю в игре, код будет запускаться каждый тик.
Я попытался getchar (), но это приводит к сбою / заморозке, как я могу добиться этого?
Это будет использоваться только на Windows 7/8/10
Вы можете использовать эту функцию
#include conio.h
..............
..............
void input()
{
if (_kbhit())
{
switch (_getch())
{
case 'q':
dir = LEFT;
break;
case 'z':
dir = UP;
break;
case 'd':
dir = RIGHT;
break;
case 's':
dir = DOWN;
break;
case 'x':
gameover;
break;
default :
break;
}
}
}
в то время как реж
enum Direction {STOP = 0, ВЛЕВО, ВПРАВО, ВВЕРХ, ВНИЗ};
В итоге я перехватил функцию OnKeyboardMessage из dinput8.dll, чтобы получить последнюю нажатую клавишу, которая сработала.