有没有办法处理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
这非常有道理,谢谢! –