LibGDX从前一个屏幕注册输入

时间:2014-09-09 01:16:45

标签: libgdx

我正在使用isTouched将菜单从我的菜单屏幕设置到我的主游戏屏幕。 (点按即可继续)。

在主游戏画面的构造函数中,我设置了输入处理器。然后输入处理器立即触发前一屏幕上的触摸。

处理此问题的正确方法是什么?

编辑:如果我在Android设备上点击我的手指,则点按会触发isTouched / justTouched。然后下一个屏幕的加载速度比我抬起手指的速度快,手指向上的事件会触发我的输入处理器。

1 个答案:

答案 0 :(得分:1)

我认为没有任何内置方法可以防止此类事件泄漏。避免此问题的一种方法是在发布时触发转换,而不是按。

  1. 切换主菜单以使用InputProcessor。使用触摸结束事件来触发转换,以便不会污染新的InputProcessor事件。这样可以避免混合轮询和基于事件的输入,这看起来也更清晰。

  2. isTouched为真时设置一个标志,然后在isTouched为假时后面的渲染迭代,并且标志为真,你知道继续安全(这是一个hacky polling版等待修饰事件)。

  3. 在许多UI中,按钮事件触发了触摸(或其等效物)。例如,在此stackoverflow UI中,单击“发布您的答案”按钮,然后将鼠标拖离按钮并释放。该按钮不会“点击”。 (同样,如果你点击按钮外面,拖动它,然后释放,它仍然不会“点击”。)