Libgdx在屏幕中使用InputMultiplexer覆盖keyDown

时间:2014-02-02 23:54:30

标签: java android libgdx

我有一个屏幕并创建了一个新的多路复用器并设置了一个输入处理器。

如何覆盖屏幕上的keyDown?

public class Screen implements Screen, TextInputListener
{
...stuff...
public Screen(Game game)
    {

        multiplexer = new InputMultiplexer();
        multiplexer.addProcessor(mySystem);
        multiplexer.addProcessor(aStage);
        Gdx.input.setInputProcessor(multiplexer);

    }

...more stuff....

}

由于

2 个答案:

答案 0 :(得分:3)

要覆盖KeyDown,您需要实现InputProcessor。

例如,如果您想要覆盖PC上的Android Back按钮和Backspace按钮,您可以使用这样的类。

public class ScreenInputHandler implements InputProcessor {

    @Override
    public boolean keyDown(int keycode) {
        if(keycode == Keys.BACK || keycode == Keys.BACKSPACE){       
            ...code here
        }
        return false;
    }
}

请记住将输入处理程序添加到InputMultiplexer。

答案 1 :(得分:0)

这就是我最终解决问题的方法:

InputProcessor backProcessor = new InputAdapter()
        {
            @Override
            public boolean keyDown(int keycode)
            {
                //do stuff
                return false;
            }
        };
multiplexer.addProcessor(backProcessor);