我对libGDX的触摸处理有点困惑。我已经看到了所有三种类型的用法。
InputProcessor: 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;
}
});
}
}
我找不到另一个与众不同的人。我应该使用哪一个?感谢
答案 0 :(得分:1)
<强> InputListener 强>
InputListener
是用于接收和处理InputEvents的低级输入事件的EventListener
。
EventListener
是一个带有handle(Event)
方法的接口,它被添加到actor以获得有关事件的通知。实现EventListener
接口的类使用instanceof来确定它们是否应该处理事件。
演员只需要添加InputListener
即可开始接收输入事件。
<强> InputProcessor 强>
InputProcessor
用于从键盘和触摸屏(桌面上的鼠标)接收输入事件。为此,必须使用Input.setInputProcessor(InputProcessor)
方法注册。在调用ApplicationListener.render()
之前,它将在每个帧中调用。
<强> InputAdapter 强>
InputAdapter
只是InputProcessor
的适配器类。如果您只想覆盖一些您感兴趣的方法,请使用此类。