1

我想检查按键事件,例如按下/按下...

但是我创建的要调用的函数会得到一个“无符号字符”。我可以使用 来检查 W/A/S/D 之类的键key == 'w',但我不知道如何检查其他键。

是否有可用字符的列表,例如“\n”?

4

5 回答 5

4

您可以在此处找到字符转义序列列表。

请注意,必须使用glutSpecialFunc()/处理某些键glutSpecialUpFunc(),以下适用于其处理程序:

key 参数可以采用以下定义的常量值之一:

  • GLUT_KEY_F1、GLUT_KEY_F2、...、GLUT_KEY_F12 - F1 到 F12 键
  • GLUT_KEY_PAGE_UP、GLUT_KEY_PAGE_DOWN - Page Up 和 Page Down 键
  • GLUT_KEY_HOME, GLUT_KEY_END - Home 键和 End 键
  • GLUT_KEY_LEFT、GLUT_KEY_RIGHT、GLUT_KEY_UP、GLUT_KEY_DOWN - 箭头键
  • GLUT_KEY_INSERT - 插入键
于 2012-02-13T18:56:52.610 回答
0

C++ 中的自然字符类型使用 ASCII 字符。这是一个列表:http ://www.asciitable.com/

您可以像这样检查换行符:

if (key == '\n')
于 2012-02-13T18:45:53.617 回答
0

这是一个很好的键枚举列表

http://msdn.microsoft.com/en-us/library/system.windows.forms.keys(v=vs.71).aspx

于 2012-02-13T18:47:46.497 回答
0

您正在要求转义序列。

是 C++ 非图形字符及其转义序列的完整列表。

于 2012-02-13T18:52:19.077 回答
0

如果我理解正确,没有系统独立的方式来获取您需要的信息。我认为,您要查找的内容称为扫描码,并且大多数系统都会有一种获取它的方法“在 Unix 下,如果您在窗口中运行,它将是 X 库中的东西,而在 Windows 下,它也可能在 Windowing 库中。您将得到的是扫描码加上一些指示各种键状态的位,例如 shift、control 和 alt;每次任何键更改状态时,窗口系统都会生成一个事件。

如果您没有在窗口中(或在您自己的窗口中)运行,那么如果您直接从终端读取,可能仍然可以获得某种关键状态,尽管我不太熟悉这些可能性。(请记住,从历史上看,输入接口是为通过串行线路读取而设计的,而这种信息在 C++ 中根本不可用。)

于 2012-02-13T19:02:45.247 回答