我对 libGDX 的触摸处理有点困惑。我已经看到了所有三种类型的用法。
输入处理器:
http://www.gamefromscratch.com/post/2013/10/24/LibGDX-Tutorial-5-Handling-Input-Touch-and-gestures.aspx
public class InputDemo2 implements ApplicationListener, InputProcessor {
@Override
public void create() {
Gdx.input.setInputProcessor(this);
}
@Override
public boolean touchDown(int screenX, int screenY, int pointer, int button) {
}
}
InputListener
这里:http://www.gamefromscratch.com/post/2013/11/27/LibGDX-Tutorial-9-Scene2D-Part-1.aspx
public MyActor(){
setBounds(actorX,actorY,texture.getWidth(),texture.getHeight());
addListener(new InputListener(){
public boolean touchDown (InputEvent event, float x, float y, int pointer, int button) {
((MyActor)event.getTarget()).started = true;
return true;
}
});
}
InputAdapter
这里:LibGdx, How to handle touch event?
public class Prac1 extends ApplicationAdapter {
@Override
public void create () {
Gdx.input.setInputProcessor(new InputAdapter(){
@Override
public boolean touchDown(int screenX, int screenY, int pointer, int button) {
return true;
}
});
}
}
我没有发现一个与另一个不同。我应该使用哪一个?
最佳答案
输入监听器 InputListener
是 EventListener
用于接收和处理 InputEvents 的低级输入事件。EventListener
是一个带有 handle(Event)
的接口(interface)添加到参与者以获取有关事件的通知的方法。实现 EventListener
的类接口(interface)使用 instanceof 来确定它们是否应该处理事件。
Actor 只需添加 InputListener
开始接收输入事件。
输入处理器
一个 InputProcessor
用于接收来自键盘和触摸屏(桌面上的鼠标)的输入事件。为此,它必须向 Input.setInputProcessor(InputProcessor)
注册。方法。在调用 ApplicationListener.render()
之前的每一帧都会调用它。 .
输入适配器 InputAdapter
只是 InputProcessor
的适配器类.如果您只想覆盖您感兴趣的某些方法,请使用此类。
关于libGDX InputListener、InputProcessor、InputAdapter有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45768691/