几个屏幕的Gdx.input.setInputProcessor.(LIBGDX,概念)



我有:

  • 一个主ApplicationListener
  • 根据上下文,我在Main中用setScreen(screen)设置了几个屏幕
  • 每个屏幕都有自己的舞台和Inputlistener

在哪里以及如何为不同的屏幕设置Gdx.input.setInputProcessor

我的意思是,当切换屏幕时,我必须取消设置旧屏幕的所有侦听器,并从新屏幕添加新的侦听器,这样它们就不会重叠。我不能在屏幕的构造函数中这样做,因为它只被称为ones。我可以用屏幕的@Override.resize方法来做,但我想这不是我应该做的吗?

我该在哪里做?

您应该在show()方法中调用Gdx.input.setInputProcessor()

因为screen.show()每次呼叫setScreen(screen);时都会呼叫

你不需要删除旧的,因为函数Gdx.input.setInputProcessor()很简单:

@Override
public void setInputProcessor (InputProcessor processor) {
this.processor = processor;
}

所以它取代了旧的。

最新更新