有没有办法处理只需一次点击的keydown而不是libgdx长按的keydown?它与手势探测器有什么关系吗? 澄清一下,我的问题是关于键盘事件,而不是触摸和鼠标事件
答案 0 :(得分:0)
是的,有一种方式,是的,它是通过Gesture-detector完成的。您可以将您定义的内容设置为"长按"在constructor(longPressDuration
参数)中创建对象时。例如,
Gdx.input.setInputProcessor(new GestureDetector(20, 0.4f, 1.1f, 0.15f, new MyGestureListener()));
将设置一个新的GestureDetector
作为输入处理器,使用"长按"定义为长度超过1.1秒的任何按压(第三个参数)。在MyGestureListener
内,您可以通过覆盖longPress
方法来定义长按事件发生时您想要发生的事情。
答案 1 :(得分:0)
GestureDetector
仅用于触摸和鼠标事件
要区分短按和长按键,您可以实现自己的InputProcessor
,它将currentTime存储在keyDownTime
方法中的变量(keyDown
?)中并计算{{1}在delta
和当前时间之间
如果计算出的keyDownTime
更大,那么delta需要是“长按”,那么key-evnet是长按,否则是短按。
如果您的delta
应该能够检测多个密钥的长按和短按,那么您可以存储InputProcessor
,其中IntMap<int, long>
是int key
和{{1是keyCode
使用long value
至keyDownTime
keyCode
和keyDown
至put
keyDownTime
中的keyUp
,然后计算get
,你知道,如果是长按或不长。