非阻塞getch()

noi*_*cat 5 c++ getch

我正在尝试在标准控制台中制作俄罗斯方块游戏.我需要非阻塞getch(),因此块可以在不按任何键的情况下掉落.如果没有按下键,则返回-1的函数会很好,否则键码.

qua*_*tum 13

这正是你想要的:

int getch_noblock() {
    if (_kbhit())
        return _getch();
    else
        return -1;
}
Run Code Online (Sandbox Code Playgroud)

基本上kbhit()确定是否按下按键的工作.

假设Windows和Microsoft Visual C++.

  • 只是提到您需要 #include <conio.h> 才能使用 _kbhit() (2认同)

Mar*_*ett 7

它是特定于操作系统的,但是您的库可能有一个名为kbhit()的函数或者类似的函数