libGDX what';这是InputListener、InputProcessor和InputAdapter之间的区别

libGDX what';这是InputListener、InputProcessor和InputAdapter之间的区别,libgdx,Libgdx,我对libGDX的触摸处理有点困惑。我已经看到了这三种类型的用法 输入处理器: InputListener此处: InputAdapter此处: 我没发现两者有什么不同。我应该使用哪一个?InputListener InputListener是用于接收和处理InputEvents的低级输入事件的EventListener EventListener是一个带有handle(Event)方法的接口,该方法添加到参与者中以通知事件。实现EventListener接口的类使用instanceof来

我对libGDX的触摸处理有点困惑。我已经看到了这三种类型的用法

输入处理器:

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;
            }

        });
    }
}