[英]OpenGL/Glut: Making the camera rotate around X axis with arrow keys?
[英]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
- Page Up和Page Down鍵 GLUT_KEY_HOME, GLUT_KEY_END
- 主頁和結束鍵 GLUT_KEY_LEFT, GLUT_KEY_RIGHT, GLUT_KEY_UP, GLUT_KEY_DOWN
- 箭頭鍵 GLUT_KEY_INSERT
- 插入密鑰 我要么在我的書中找到它們,要么在另一篇文章中的Stackoverflow上找到它們。
但還有嗎? 例如,對於鍵盤和鼠標上的所有鍵?
謝謝。
鍵盤有兩組按鈕:可以使用ASCII代碼表示的按鈕和不能使用ASCII代碼表示的按鈕。 可以用ASCII表示的那些在按下時返回1個字節,那些不能返回兩個字節,第一個為NULL
通過給你兩組函數來處理鍵盤事件:一個處理普通的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
:×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
:0×0000, GLUT_KEY_REPEAT_ON
:×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
:×0001, GLUT_JOYSTICK_BUTTON_B
:0×0002, GLUT_JOYSTICK_BUTTON_C
:0x0004, GLUT_JOYSTICK_BUTTON_D
:×0008。
如果您使用游戲鼠標或帶有更多按鈕的鍵盤/操縱桿,您可以通過輸出按下控制台的按鈕來測試每個按鈕返回的內容,然后直接在代碼中使用此值來了解是否按下其中一個按鈕
glut
通過共分鍵盤鍵glutSpecialFunc
W / C需要特殊鍵,如F1,F2 ...,NUMPADS等而glutKeyboardFunc
需要,可以通過如字母,數字的字符來表示的所有鍵,ESC(27“ASCII '),ENTER('ASCII'中的32)等。
總之, glutKeyboardFunc
采用可以在不使用任何'\\'(反斜杠,如'\\ t','\\ n')之前表示的char
參數,其余字符由glutSpecialFunc
處理
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.