簡體   English   中英

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 - 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM