OpenGL / Glut 按钮和键
OpenGL / Glut Buttons and Keys
我正在使用Pearson, Computer Graphics with OpenGL
的书自学。
目前正在尝试进行一个简单的方形移动,但在我超越自己之前,我需要确保我了解 Glut 中内置的键。
我知道以下键:
-
GLUT_KEY_F1, GLUT_KEY_F2, ..., GLUT_KEY_F12
- F1 到 F12 键 -
GLUT_KEY_PAGE_UP, GLUT_KEY_PAGE_DOWN
- 向上翻页和向下翻页键 -
GLUT_KEY_HOME, GLUT_KEY_END
- 主页和结束键 -
GLUT_KEY_LEFT, GLUT_KEY_RIGHT, GLUT_KEY_UP, GLUT_KEY_DOWN
- 箭头钥匙 -
GLUT_KEY_INSERT
- 插入键
我要么在我的书中找到它们,要么在Stackoverflow上另一篇文章中找到它们。
但是还有更多吗? 例如,对于键盘和鼠标上的所有键?
谢谢。
>glut
将键盘中的键除以glutSpecialFunc
w/c采用特殊键,如F1,F2...,NUMPADS等,而glutKeyboardFunc
采用所有可以用字符表示的键,如字母,数字,ESC("ASCII"中的27(,ENTER("ASCII"中的32(等。
总之,glutKeyboardFunc
char
参数,这些参数可以在不使用任何"\"(反斜杠,如"\t"、""(的情况下表示,其余字符由glutSpecialFunc
键盘有两组按钮:可以使用ASCII代码表示的按钮和不能用ASCII表示的按钮。 可以用ASCII表示的按钮在按下时返回1个字节,无法返回两个字节的按钮,其中第一个字节是NULL
glut 通过为您提供两组函数来处理键盘事件来抽象这一点:一组用于处理正常的 ASCII 标准按钮glutKeyboardFunc
,另一组用于处理特殊的双字节按钮glutSpecialFunc
功能具有常用键盘特殊按钮的常量:
GLUT_KEY_F1
:0x0001, GLUT_KEY_F2
:0x0002, GLUT_KEY_F3
:0x0003, GLUT_KEY_F4
:0x0004, GLUT_KEY_F5
:0x0005, GLUT_KEY_F6
:0x0006, GLUT_KEY_F7
:0x0007, GLUT_KEY_F8
:0x0008, 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
:0x0001, GLUT_KEY_REPEAT_DEFAULT
:0x0002。
鼠标单击可以使用glutMouseFunc
处理,与鼠标按钮关联的常量为: GLUT_LEFT_BUTTON
:0x0000, GLUT_MIDDLE_BUTTON
:0x0001, GLUT_RIGHT_BUTTON
:0x0002
glut 还可以处理具有以下常量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
:0x0001, GLUT_JOYSTICK_BUTTON_B
:0x0002, GLUT_JOYSTICK_BUTTON_C
:0x0004, GLUT_JOYSTICK_BUTTON_D
:0x0008。
如果您使用的是带有更多按钮的游戏鼠标或键盘/操纵杆,您可以通过将按下的按钮输出到控制台来测试每个按钮返回的内容,然后直接在代码中使用此值来了解是否按下了其中一个按钮
- 问:如何使用C++中的按钮从窗口打开窗口
- 如何将点击的信号和插槽添加到qt中的自定义按钮中
- QML按钮点击功能执行顺序
- 当用户超过按钮点击限制时报告
- 函数计算用户按下按钮的频率
- 热键/按钮,根据需要进行编译,但不运行(在F5和Ctrl+Shift+B之间)
- FLTK:按下哪个按钮 - 将数字传递给按钮的回调 (lambda)
- 如何通过按下第三个窗口中的按钮,将QString从一个窗口获取到另一个窗口
- 垂直方向的 Gtk3+ 旋转按钮 (c/c++)
- Qt自定义QPush按钮未显示在布局上
- 使用 GLUT 使用键停止动画?
- SDL 操纵杆按钮按下/C++
- 如何使用按钮更新GTK3图像以使用C++从相机捕获图片
- Qt中来自不同功能的按钮引用
- GLEW/GLUT:调用init并创建一个窗口后,取消初始化并重新初始化?
- WinAPI 在单击第一个对话框上的按钮控件并销毁第一个对话框后创建第二个对话框
- ImGui 在单击按钮后冻结
- WinAPI 无法创建按钮
- 按钮悬停在 QT 中垂直布局的选项卡小部件中不起作用
- OpenGL / Glut 按钮和键