在我爲我的OpenGL程序while循環我有一些像這樣讀一的KeyDown只有一次:在while循環(像的KeyListener在Swing)
if (Keyboard.isKeyDown(Keyboard.KEY_W)) {
...
}
當然現在這個如果得到確認多個每次倍按鈕按下。
有沒有辦法讓它每按一次只檢測一次按鈕?
例如像Java Swing中的KeyListener一樣。
我已經使用elapsedTime
變量處理移動速度,也許我可以用它來解決這個問題呢?
設置一個標誌,當你第一次檢測到按鍵,它們雖然如此,忽略了其他任何按鍵相同的類型,直到你發現鑰匙釋放... – MadProgrammer 2014-09-10 21:25:36
嗯,這聽起來像一個計劃。 但是,如果我只想讓if-code每次按下只執行一次,我該如何檢查?因爲while循環仍然繼續,並且每秒運行60次,所以無論使用什麼布爾值,在按下鍵時都會如此,從而執行代碼。如果我將使用一段時間,它會阻止當時運行的其他代碼。或者我錯過了什麼? – 2014-09-10 21:48:09
您需要在呼叫之間保留一個標記以檢查狀態。如果您檢測到該標誌爲真並且該鍵處於關閉狀態,則可以忽略該標誌,否則如果該標誌爲真且該鍵未關閉,則需要重置該標誌。你只想運行邏輯,當標誌是假的,關鍵是關閉 – MadProgrammer 2014-09-10 22:32:17