S5a*_*uel 2 java android libgdx
我不明白InputProcessor应该如何工作。
我有多个Screens游戏。我创建了一个MyInputProcessor class那个implementsInputProcessor。在我的MenuState classIGdx.input.setInputProcessor类中的一个实例。
首先,我应该如何访问和设置在我的MainMenu classin中定义的变量MyInputProcessor?例如,如果我希望该touchDown方法更改变量。
如果我 switch Screens,我是否必须创建一个新的InputProcessor class来检查其他触摸事件?我显然不希望它继续检查用于MainMenu class. 我该如何使用它?
我应该InputProcessor为每个人创建一个全新的Screen吗?
我觉得这一切都非常令人困惑。感谢您提供任何帮助。
是的,通常您InputProcessor为每个Screen需要处理输入的对象创建一个,甚至更好地为每个对象创建一个。这个对象可以是 a Screen,也可以是 a Player。
因此,需要获得有关任何输入的通知的每个对象都应该实现InputProcessor并处理相关的输入。
还要确保将您设置InputProcessor为当前活动的(使用Gdx.input.setInputProcessor)。
的ScreenS表示例如可以设置自理作为当前InputProcessor的show方法(最终注销自理的hide)。如果您想InputProcessor一次使用多个s(例如在 中GameScreen,Player使用“w,a,s,d”控制,但您想PauseMenu在“Esc”上显示 a ),只需使用InputMultiplexer并InputProcessor在该多路复用器上注册每个。
如果您使用InputMultiplexer,请确保注意您的InputProcessor-methods的返回值:
- Return true,如果处理器处理了事件(例如在Players 中InputProcessor,当“w”、“a”、“s”或“d”被按下)。- Return false,当您没有处理该事件时(例如在Players 中InputProcessor,当按下“Esc”时)。
该InputMulitplexer会经过它的所有InputProcessorS和送他们时,他们中的一个unitl返回true。所有其他人都不会收到有关该事件的通知。
另请注意,这Stage是一个InputProcessor,它将事件分发给它的Actors。因此,如果您想处理Actors 中的输入,Stage正如你当前InputProcessor.
| 归档时间: |
|
| 查看次数: |
985 次 |
| 最近记录: |