【发布时间】:2016-10-12 19:50:44
【问题描述】:
我不明白 InputProcessor 应该如何工作。
我有多个 Screens 用于游戏。我创建了一个MyInputProcessorclass implements InputProcessor。在我的MenuState class 我Gdx.input.setInputProcessor 到一个类的实例。
首先,我应该如何访问和设置在
MainMenu classinMyInputProcessor中定义的变量?例如,如果我希望touchDown方法更改变量。如果我切换
Screens,是否必须创建一个新的InputProcessor class来检查其他触摸事件?我显然不希望它继续检查用于MainMenu class的东西。我应该如何使用它?我是否应该为每个
Screen创建一个全新的InputProcessor?
我觉得这一切都非常令人困惑。非常感谢您的帮助。
【问题讨论】:
-
输入通常与每个屏幕紧密耦合,因此常见的模式是让每个屏幕实现 InputProcessor,然后在屏幕的 show() 方法中调用 Gdx.input.setInputProcessor(this)。基本上,是的,您需要定义如何处理每个屏幕上的输入。使用 Stages 是您现在可以选择忽略的另一种可能性。 Stage 还实现了 InputProcessor。通常,人们将 Stages 用于 UI 事物(按钮、输入)。
-
非常感谢您的澄清。 InputProcessor 把我搞糊涂了。