OpenGL/Glut按钮和键

问题描述:

我正在学习使用Pearson, Computer Graphics with OpenGL的书。OpenGL/Glut按钮和键

我目前正在尝试做一个简单的方形移动,但在我超越自己之前,我需要确定我明白在Glut中构建了哪些键。

我知道下面的键:

  • GLUT_KEY_F1, GLUT_KEY_F2, ..., GLUT_KEY_F12 - Page Up和Page Down键
  • GLUT_KEY_HOME, GLUT_KEY_END - - Home和End键
  • GLUT_KEY_LEFT, GLUT_KEY_RIGHT, GLUT_KEY_UP, GLUT_KEY_DOWN通过F12键
  • GLUT_KEY_PAGE_UP, GLUT_KEY_PAGE_DOWN F1 - Arrow keys
  • GLUT_KEY_INSERT - Insert key

我发现他们在我的书或*在另一篇文章中。

但还有更多吗?例如,键盘和鼠标上的所有键?

谢谢。

+1

在glut.h文件中看 – yattering 2013-03-15 15:17:40

glut通过glutSpecialFunc瓦特除以在键盘键/ C需要特殊键,如F1,F2 ...,NUMPADS等而glutKeyboardFunc需要可以表示所有的键由如字母,数字,ESC的字符( ('ASCII'中的27)等等。

in summary,glutKeyboardFunc take char参数可以不使用'\'(反斜杠,如'\ t','\ n')之前的任何字符其余处理由glutSpecialFunc

+0

输入键似乎是13. – PALEN 2015-01-14 23:10:00

+0

esc不适用于27 – vipin8169 2016-09-25 05:38:13

键盘有两组按钮:那些可以使用ASCII代码和那些t帽子不能。可以用ASCII表示的那个按下时返回1个字节,不能返回两个字节的那个首先是NULL

glut通过给你提供两组函数来处理键盘事件:1处理正常的ASCII标准按钮glutKeyboardFunc,其他特殊处理两个字节按钮glutSpecialFunc

特殊功能对普通键盘的特殊按钮常数:

GLUT_KEY_F1:0×0001, GLUT_KEY_F2:0×0002, GLUT_KEY_F3:为0x0003, GLUT_KEY_F4:0x0004, GLUT_KEY_F5:0×0005, GLUT_KEY_F6:0x0006, GLUT_KEY_F7:0x0007, GLUT_KEY_F8:0×0008, GLUT_KEY_F9:为0x0009, GLUT_KEY_F10:0x000A, GLUT_KEY_F11:0x000B, GLUT_KEY_F12:0x000C, GLUT_KEY_LEFT:0x0064, GLUT_KEY_UP:0x0065, GLUT_KEY_RIGHT:0x0066, GLUT_KEY_DOWN:0x0067, GLUT_KEY_PAGE_UP:0x0068, GLUT_KEY_PAGE_DOWN:0x0069, GLUT_KEY_HOME:0x006A, GLUT_KEY_END:0x006B, GLUT_KEY_INSERT:0x006C, GLUT_KEY_REPEAT_OFF:为0x0000, GLUT_KEY_REPEAT_ON:0×0001, GLUT_KEY_REPEAT_DEFAULT:0×0002。

鼠标点击可与glutMouseFunc来处理并用鼠标按钮相关联的常数为: GLUT_LEFT_BUTTON:0×0000, GLUT_MIDDLE_BUTTON:0×0001, GLUT_RIGHT_BUTTON:0×0002

过剩还可以处理与它具有glutJoystickFunc操纵杆以下常量: GLUT_HAS_JOYSTICK:0x0264, GLUT_OWNS_JOYSTICK:0x0265, GLUT_JOYSTICK_BUTTONS:0x0266, GLUT_JOYSTICK_AXES:0x0267, GLUT_JOYSTICK_POLL_RATE:0x0268, GLUT_JOYSTICK_BUTTON_A:0×0001, GLUT_JOYSTICK_BUTTON_B:0×0002, GLUT_JOYSTICK_BUTTON_C:0x0004, GLUT_JOYSTICK_BUTTON_D:0×0008。

如果您正在使用带有更多按钮的游戏鼠标或键盘/游戏杆,您可以通过将按钮按下到控制台来测试每个按钮的返回情况,然后直接在您的代码中使用该值来知道其中一个按钮被按下