libgdx keyDown区分长按和短按

时间:2015-06-07 19:32:41

标签: libgdx

有没有办法处理只需一次点击的keydown而不是libgdx长按的keydown?它与手势探测器有什么关系吗? 澄清一下,我的问题是关于键盘事件,而不是触摸和鼠标事件

2 个答案:

答案 0 :(得分:0)

是的,有一种方式,是的,它是通过Gesture-detector完成的。您可以将您定义的内容设置为"长按"在constructorlongPressDuration参数)中创建对象时。例如,

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 valuekeyDownTime keyCodekeyDownput keyDownTime中的keyUp,然后计算get,你知道,如果是长按或不长。