我在论坛上搜索了很多,只找到了Gdx.input.setInputProcessor(inputMultiplexer)...
InputProcessor inputProcessorOne = new CustomInputProcessorOne();
InputProcessor inputProcessorTwo = new CustomInputProcessorTwo();
InputMultiplexer inputMultiplexer = new InputMultiplexer();
inputMultiplexer.addProcessor(inputProcessorOne);
inputMultiplexer.addProcessor(inputProcessorTwo);
Gdx.input.setInputProcessor(inputMultiplexer);
我遇到了问题,因为它被用来在同一个类中使用多个处理器。
但是我只需要在两个不同的类中使用一个处理器。
目前,我有以下代码……但它不能正常工作:
类1
Gdx.input.setInputProcessor(stageMainMenu);
类2
Gdx.input.setInputProcessor(stageGameOverMenu);
编辑: @MennoGouw 我的问题在于我想将Stage对象放入addProcessor中,而不是InputProcessor。 我不想创建自己的Processor,我会使用ClickListener。 此外,我不需要同时使用两个处理器。实际上,这是两个不同的屏幕。然而,InputProcessor没有清晰的方法。 此外,我不知道应该在哪里构建InputMultiplexer。
我会尽力更清楚一些,我有:
MyGame.java仅有一个方法(
public void create() {
mainMenuScreen = new MainMenu(this);
//gameScreen = new MainGame(this);
gameOverScreen = new GameOver(this);
setScreen(mainMenuScreen);
)
}
还有GameOver.java和MainMenu.java。(这两个屏幕)
如果我将Gdx.input.setInputProcessor(stageName)
放在构造函数中,只有其中一个会运行。
否则,在show()方法中,它会崩溃。
感谢您的时间
InputMultiplexer
。如果你只需要一个处于活动状态,你可以使用inputMultiplexer.clear
并在任何时候添加一个新的。 - Madmenyo