1

在我的 libgdx 项目中,我有一个手势监听器和一个在单独的类中使用的输入处理器。一个在玩家里面,一个在主状态里面。如果我将其中一个指定为输入处理器:Gdx.input.setInputProcessor();那么我将无法从另一个获取输入。

我尝试使用输入多路复用器:

InputMultiplexer multi = new InputMultiplexer();

GestureHandler gesture = new GestureHandler();
InputProccessor input =  new InputProcessor();

multi.addProcessor(new GesturDetector(gesture));
multi.addProcessor(new GestureDetector(input);

Gdx.input.setInputProcessor(multi);

这不起作用并导致游戏崩溃。我宁愿避免使用多路复用器。无论如何都要检查两种输入法吗?

4

1 回答 1

1

Multiplex 是您问题的正确答案。

多路复用器经常忽略的一件事是处理程序的返回值(真或假)非常重要。(它在没有多路复用器的情况下被忽略)。结果表明您是否“处理”了输入。处理的事件不会传播到多路复用器中的下一个处理器。此外,默认情况下,Eclipse 创建的存根方法将返回“true”,这无济于事。

无论如何,这不应该崩溃。

于 2013-08-02T21:55:47.793 回答