libGDX what';这是InputListener、InputProcessor和InputAdapter之间的区别
我对libGDX的触摸处理有点困惑。我已经看到了这三种类型的用法 输入处理器:libGDX what';这是InputListener、InputProcessor和InputAdapter之间的区别,libgdx,Libgdx,我对libGDX的触摸处理有点困惑。我已经看到了这三种类型的用法 输入处理器: InputListener此处: InputAdapter此处: 我没发现两者有什么不同。我应该使用哪一个?InputListener InputListener是用于接收和处理InputEvents的低级输入事件的EventListener EventListener是一个带有handle(Event)方法的接口,该方法添加到参与者中以通知事件。实现EventListener接口的类使用instanceof来
InputListener
此处:
InputAdapter
此处:
我没发现两者有什么不同。我应该使用哪一个?InputListener
InputListener
是用于接收和处理InputEvents的低级输入事件的EventListener
EventListener
是一个带有handle(Event)
方法的接口,该方法添加到参与者中以通知事件。实现EventListener
接口的类使用instanceof来确定它们是否应该处理事件
参与者只需添加一个InputListener
即可开始接收输入事件
输入处理器
InputProcessor
用于接收来自键盘和触摸屏(桌面上的鼠标)的输入事件。为此,必须使用Input.setInputProcessor(InputProcessor)
方法注册它。在调用ApplicationListener.render()
之前,每个帧都会调用它
输入适配器
InputAdapter
只是InputProcessor
的适配器类。如果您只想覆盖您感兴趣的一些方法,请使用此类
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) {
}
}
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;
}
});
}
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;
}
});
}
}