我有:
- 一个主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;
}
所以它取代了旧的。