事件处理(Event Handling) 事件处理,能够让您按时间顺序获得更准确更全面的用户输入的信息。当特定的输入序列比较重要的时候,事件处理利用用户界面提供了一种方法来实现的,如按下按钮,松开按钮,表示用户点击了一次按钮。这种互动是很难用轮询来实现的。 输入处理器(Input Processor) 事件处理是用观察者模式来实现的。首先,我们需要实现监听接口叫做InputProcessor: [crayon-5014ed6351266/] 前三个方法使你能够监听键盘的事件: keyDown():当有按键被按下的时候会调用这个方法,返回一个按键的代码,代码看这里。 keyUp():当有键盘松起的时候会调用这个方法,返回同上的按键代码。 keyTyped(): 当用键盘输入一个Unicode字符的时候会调用这个方法。可以用来实现文本区域和类似的用户界面元素。 接下去的方法用来返回鼠标/触摸事件: touchDown(): 当有一个手指碰到触摸屏或者鼠标点击的时候调用这个方法。返回触摸点对应指针的XY坐标,指针的索引号,或者鼠标点击的按键(对触摸屏来说一般来说是左键)。 touchUp(): 当有一个手指离开屏幕或者鼠标键松开时会调用该方法。返回最后接触的XY坐标,索引号,鼠标键。 touchDragged(): 当手指在屏幕上滑动,或者鼠标按键按下然后移动时会调用该方法。返回坐标和指针索引。但是在滑动的时候有多个按键按下的时候,这些按键不会被返回。你可以使用Gdx.input.isButtonPressed()来检查一个特定的按键状态。 touchMoved(): 当鼠标在按键按下并移动的时候触发该方法。事件只会在桌面程序上触发,对于有触碰的设备你需要使用上面的那个方法。 scrolled(): 当鼠标滚轮滚动的时候触发这个方法。返回-1或1表示滚动的方向。这个方法在触屏设备上也不会被调用。 以上的所有方法都是返回boolean类型的。我们可以通过下面的章节来了解InputMultiplexer (输入调制器)。 当你实现了自己的输入处理器(InputProcessor)的时候,你必须告诉libgdx,这样才能在有输入事件发生时使用你的处理器来处理: [crayon-5014ed63512f7/] 像如上设置好之后,所有的新输入事件都会被放到这个MyInputProcessor实例中来处理。事件会在渲染线程调用ApplicationListener.render()前被分配妥。 输入调制器(InputMultiplexer) 有时候你会需要把多个事件处理器(InputProcessor)串联起来,你有一个处理器来处理界面的事件,然后有第二个处理器来处理游戏中的输入事件。那么你可以使用InputMultiplexer
Link URL: http://www.aojgame.com/developer/2250.html
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/27202405/viewspace-738602/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/27202405/viewspace-738602/