gpt4 book ai didi

java - LibGdx : Using setInputProcessor(stage) in different classes

转载 作者:太空狗 更新时间:2023-10-29 13:14:17 25 4
gpt4 key购买 nike

我正在使用 LibGdx 开发安卓游戏;目前,有 2 个带有多个按钮的菜单屏幕,一个 mainMenu 和一个 gameOverMenu。我需要使用 Gdx.input.setInputProcessor(stage);在两个类(class),但我不能...只有一个屏幕在工作。

我在论坛上搜索了很多,只找到了 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 个处理器。

目前,我有这个......但它不起作用:

第 1 类 Gdx.input.setInputProcessor(stageMainMenu);

第 2 类 Gdx.input.setInputProcessor(stageGameOverMenu);

编辑:@MennoGouw我引用的问题是我想将 Stage 对象放入 addProcessor,而不是 InputProcessor。我不想创建自己的处理器,我会使用 ClickListener。此外,我真的不需要同时使用两个处理器。实际上,这是两个不同的屏幕。但是,InputProcessor 没有明确的方法。

此外我不知道我应该在哪里 build InputMultiplexer .

我会尽量说得更清楚,我有:MyGame.java 只有一种方法( public void create() {
mainMenuScreen = new MainMenu(this);
//gameScreen = new MainGame(this);
gameOverScreen = new GameOver(this);
setScreen(mainMenuScreen);<br/>
}
)

还有 GameOver.java 和 MainMenu.java。 (两个画面)如果我把 Gdx.input.setInputProcessor(stageName)在构造函数中,只有两次运行中的一次。否则,在 show() 方法中,它会崩溃。

谢谢你的时间

最佳答案

InputMultiplexer 有什么问题?它专为您寻找的东西而打造。

您也可以使用这段代码分别在每个Stage中添加处理器:

首先在您的初始化游戏类函数中设置多路复用器:

Gdx.input.setInputProcessor(new InputMultiplexer());

然后检查是否必须添加输入处理器:

InputMultiplexer inputMultiplexer = (InputMultiplexer) Gdx.input.getInputProcessor();
if (!inputMultiplexer.getProcessors().contains(stageMainMenu))
inputMultiplexer.addProcessor(stageMainMenu);

关于java - LibGdx : Using setInputProcessor(stage) in different classes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36449274/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com