在我的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);
这不起作用并导致游戏崩溃。我宁愿避免使用多路复用器。无论如何都要检查两种输入方法吗?
答案 0 :(得分:1)
Multiplex是您问题的正确答案。
多路复用器经常忽略的一点是处理程序的返回值(true或false)非常重要。 (没有多路复用器就会被忽略)。结果表明你是否“处理”了输入。处理的事件不会传播到多路复用器中的下一个处理器。此外,默认情况下,Eclipse创建的存根方法将返回“true”,这无济于事。
无论如何,这不应该崩溃。