获取最后按下的键盘键

Get last pressed keyboard key

我正在尝试获取最后按下的键盘键,但由于我在游戏中工作,代码将是 运行 每个滴答声。 我尝试了 getchar() 但结果是 crash/freeze,我该如何实现?

这只会在 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,LEFT,RIGHT,UP,DOWN};

我最终挂钩了 dinput8.dll 的 OnKeyboardMessage 函数以获取最后按下的键,它起作用了。