有沒有辦法處理keydown只是一個點擊而不是一個長按libgdx keydown?它與手勢檢測器有什麼關係? 澄清,我的問題是有關鍵盤事件,不要觸摸和鼠標事件libgdx keyDown區分長按和短按
回答
GestureDetector
僅用於觸摸和鼠標事件。
要區分短按鍵和長按鍵,您可以實現您自己的InputProcessor
,它將當前時間存儲在keyDown
方法中的變量(keyDownTime
?)中,並計算keyDownTime
與當前時間之間的delta
。
如果計算得出的delta
比較大,那麼這個三角洲需要是一個「長按」,那麼關鍵詞evnet是一個長按,否則就是短按。
如果您的InputProcessor
應該能夠檢測多個按鍵的長按和短按,則可以存儲IntMap<int, long>
,其中int key
是keyCode
而long value
是keyDownTime
。
使用keyCode
在keyDown
到put
的keyDownTime
並在keyUp
到get
的keyDownTime
,然後計算delta
,你知道,如果它是一個長按或不。
是的,有一種方法,是的,它是通過Gesture-detector完成。在constructor(參數longPressDuration
)中創建對象時,可以將您定義的內容設置爲「長按」。例如,
Gdx.input.setInputProcessor(new GestureDetector(20, 0.4f, 1.1f, 0.15f, new MyGestureListener()));
將設置一個新GestureDetector
作爲輸入處理器與「長按」大於1.1秒(第三個參數)定義爲任何按更長。在MyGestureListener
內部,您將通過覆蓋longPress
方法來定義在發生長按事件時要發生的情況。
但這不是關於touchInput的嗎?用戶改爲想要檢測長按鍵。 'GestureDetector'是否有一些方法可以實現? – Springrbua
@Springrbua你是正確的,'GestureDetector'用於觸摸/鼠標事件。我以爲OP詢問了鼠標輸入,因爲他使用了「單擊」這個詞,這聽起來像是鼠標事件。 – asherbar
我的意思是鍵盤事件,而不是觸摸和鼠標事件,對於混淆抱歉。 –
- 1. Node-Red + Arduino節點 - 區分長按按鈕和短按鈕
- 2. 長按和短按UIBUTTON
- 3. 是否可以區分長按和輕按按鈕?
- 4. Libgdx - 如何使用「長按」?
- 5. 如何區分長按鍵和常規按鍵?
- 6. 區分按下按鍵和按鍵
- 7. 如何結合短拖動和長按
- 8. Oracle按分區劃分ID和按DATE分區間隔
- 9. 如何區分輕按和按住?
- 10. 如何區分Alt按和Alt + 3按
- 11. postgres按日期(長)按時區選擇
- 12. 電暈如何區分點擊和長按?
- 13. libGDX MENU按鈕
- 14. ms訪問長按或短的點擊
- 15. 區分按鈕羣
- 16. 拆分按鈕區
- 17. 在keydown上按下按鈕? (jQuery)
- 18. 按下按鈕後執行KeyDown方法
- 19. 實施長按分享按鈕在android
- 20. F5和叔KEYDOWN /按鍵鍵碼
- 21. 長按按鈕
- 22. 長按按鈕
- 23. 長按按鈕
- 24. 長按按鈕
- 25. 重置按鈕LibGdx
- 26. 我能區分短期和長期的選項org.apache.commons.cli
- 27. keydown與按鈕對應
- 28. KEYDOWN按下左側的KEYUP
- 29. Keydown事件:numpad +,* /按鈕
- 30. 如何檢測按鍵/ KEYDOWN
那麼,你需要定義什麼是「長按」?它是第二個嗎?甚至更長?區分它們的一種可能的方法是將鍵盤上的當前時間存儲下來,並在keyUp方法中計算一個增量。如果這個增量大於那個「長按」所需的增量,它就是一個長按。相反,手勢檢測是關於觸摸屏上的輸入,就我所知。它被用來檢測f.e.幻燈片等 – Springrbua
這非常有道理,謝謝! –