有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java LibGdx:在不同类中使用setInputProcessor(stage)

我正在使用LibGdx开发安卓游戏;目前,有两个带有几个按钮的菜单屏幕,一个主菜单和一个游戏结束菜单。 我需要使用Gdx。输入设置输入处理器(阶段);在这两个班,但我不能。。。只有一个屏幕在工作

我在论坛上搜索了很多,只找到了Gdx。输入设置输入处理器(输入多路复用器)

InputProcessor inputProcessorOne = new CustomInputProcessorOne();
InputProcessor inputProcessorTwo = new CustomInputProcessorTwo();
InputMultiplexer inputMultiplexer = new InputMultiplexer();
inputMultiplexer.addProcessor(inputProcessorOne);
inputMultiplexer.addProcessor(inputProcessorTwo);
Gdx.input.setInputProcessor(inputMultiplexer);

我遇到了麻烦,因为它的使用是为了在同一个类中有几个处理器

但我只需要两个独立类中的一个处理器

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

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

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

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

此外,我不知道应该在哪里构建InputMultiplexer

我会尽量说清楚,我有: 我的游戏。只有一种方法的java( public void create() { mainMenuScreen = new MainMenu(this); //gameScreen = new MainGame(this); gameOverScreen = new GameOver(this); setScreen(mainMenuScreen);
}

加梅结束了。爪哇及;主菜单。JAVA(两个屏幕) 如果我将Gdx.input.setInputProcessor(stageName)放在构造函数中,则只运行两个构造函数中的一个。 否则,在show()方法中,它会崩溃

谢谢你的时间


共 (1) 个答案

  1. # 1 楼答案

    有什么问题吗?它是专为你所寻找的

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

    初始化游戏类函数中的第一个设置多路复用器:

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

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

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