如何使用ControllerListener jinput java



如何将ControllerListener添加到jinput库中的控制器。我知道ControllerListener类是一个接口,并且在ControllerEnvironment中有一个添加侦听器的方法,但即使我这样做,也不会发生任何事情,我该如何运行它?

目前还没有任何插件可以触发ControllerListener的方法。创建者可能不会提供任何插件,因为该项目已经很长时间没有更新了,上一次更新只是为了删除Windows 10未知的声明。

目前您唯一的解决方案是:

  • 控制器的轮询方法返回布尔值。如果此布尔值如果为false,则删除控制器
  • 编写自己的插件或修改现有插件以激发方法在ControllerListener界面中
  • 每隔几秒钟重建一次环境并检查新控制器阵列与旧控制器阵列的差异

对于最后一个解决方案,仅仅调用ControllerEnvironment.getDefaultEnvironment().getControllers()是不够的。您必须再次调用插件构造函数。由于大多数插件类都具有包可见性,因此您可能必须编辑原始源代码才能将其公开。DirectAndRawEnvironmentPlugin已具有公共构造函数。所以你可以做这样的事情:

ControllerEnvironment env = new DirectAndRawEnvironmentPlugin();
if(!env.isSupported()) {
env = ControllerEnvironment.getDefaultEnvironment();
}

最新更新