之間的延遲,而且我有一定的困難,有越來越鍵盤和鼠標輸入。順便說一下,我正在使用它來進行相機移動和旋轉。LWJGL 3 GLFW鍵盤和鼠標輸入是緩慢的,有那麼我剛纔最近提出從LWJGL 2至3 GLFW_PRESS和GLFW_REPEAT
我的問題是,如果我使用GLFW回調,動作顯得非常不連貫和緩慢的。這不是一個一貫的速度,只是感覺不對。此外,當我按下某個鍵時,例如w向前移動時,在從GLFW_PRESS
到GLFW_REPEAT
的轉換之間大約有半秒鐘的延遲。這導致相機在按下鍵時不會前半秒移動。
順便說一下,我有一個InputHandler類,它具有keyDown,keyPressed,keyReleased等方法。我沒有在一個invoke方法中的所有關鍵檢查。invoke方法將關鍵事件添加到列表存儲密鑰以及可以是DOWN,TAPPED,RELEASED,NONE之一的事件狀態枚舉。該類主要基於應對this question
我已經花了近2小時,試圖找到一個解決方案,並沒有太大的發現。我也發現使用其他方法的回調有些人雖然,像這樣:
if (glfwGetKey(window, key) == GLFW_PRESS)
和
if (glfwGetKey(windowm key) == GLFW_RELEASE)
,但我不能找到一種方法,使用這種檢測單個按鍵敲擊,即因爲glfwGetKey
方法只能檢測到GLFW_PRESS
和GLFW_RELEASE
。
如果有人能告訴我用glfwGetKey
方法檢測單個按鍵的方法,或者使GLFW回調遠不如以往更平滑,我將不勝感激。
謝謝:)
據推測,如果你動畫(使用'glfwPollEvents'在一個循環中),您可以假設鍵被按下直到鍵處理程序回調收到'RELEASE'該鍵。否則,循環中的'glfwWaitEvents'不會執行任何操作,直到窗口系統確定足夠長的時間間隔來響應REPEAT。 –
有沒有辦法縮短註冊'GLFW_REPEAT'所用的時間? – Kelan
不使用glfw。可能有與操作系統有關的方式來執行此操作,但glfw只響應操作系統提供的事件。我懷疑它會產生全球效應,而不是按應用程序。 –