我正在尝试用C ++做一个简单的游戏,为此,我必须检测按键(特别是对上,下,左和右感兴趣)。为此,我做了以下]]
#include <iostream> #include <conio.h> using string = std::string; const int K_UP = 72; const int K_DOWN = 80; const int K_LEFT = 75; const int K_RIGHT = 77; string get_pressed() { if (K_UP == _getch()); { return "UP"; } if (K_DOWN == _getch()); { return "DOWN"; } if (K_RIGHT == _getch()); { return "RIGTH"; } return "LEFT"; } int main() { cout << "MOVING" << get_pressed() << endl; }
但是,无论我按什么,输出都是“ MOVING UP”。另外,当我在阅读“如何检测按键”时,我看到Windows是向上键输入的数字72,但是当我尝试打印
_getch()
时然后按向上键,它会给我244,并且在向右,向左和向下时也是如此。我对这里发生的事情感到困惑,任何帮助将不胜感激。谢谢
我正在尝试用C ++做一个简单的游戏,为此,我必须检测按键(特别是对上,下,左和右感兴趣)。为此,我做了以下#include
((可能)您正在混淆键代码和ASCII代码。 c / c ++方法基本上只支持密钥的ascii代码,而您正在阅读的文档则是原始密钥的代码。