获取最后按下的键盘键

时间:2016-04-26 21:47:05

标签: c++ windows keyboard-events key-bindings

我试图获取最后按下的键盘键,但由于我在游戏中工作,代码将在每个刻度线运行。 我尝试了getchar(),但它导致崩溃/冻结,我怎么能实现这个?

这仅适用于Windows 7/8/10

2 个答案:

答案 0 :(得分:0)

你可以使用这个功能

#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;

        }

    }
}

而dir是

  

枚举方向{STOP = 0,LEFT,RIGHT,UP,DOWN};

答案 1 :(得分:0)

我最终挂了dinput8.dll的OnKeyboardMessage函数来抓取最后按下的按键,这很有效。