如何使用 ControllerListener jinput java
How to use ControllerListener jinput java
如何将 ControllerListener 添加到 jinput 库中的控制器。
我知道 ControllerListener class 是一个接口,并且在 ControllerEnvironment 中有一个添加监听器的方法,但即使我这样做也没有任何反应,我如何做到 运行 呢?
目前还没有触发 ControllerListener 方法的插件。可能不会有来自创作者的任何插件,因为该项目现在很长时间没有更新,最后一次更新只是为了删除 Windows 10 未知的通知。
目前您唯一的解决方案是:
- 控制器的 poll 方法 returns 布尔值。如果这个布尔值
为假则控制器被移除。
- 编写您自己的插件或修改现有插件以触发方法
在 ControllerListener 接口中
- 每隔几秒重建环境并检查
新控制器阵列与旧控制器阵列的差异。
对于最后一个解决方案,仅调用 ControllerEnvironment.getDefaultEnvironment().getControllers() 是不够的。您必须再次调用插件构造函数。由于大多数插件 类 都在包可见性上,您可能必须编辑原始源代码才能使它们 public。 DirectAndRawEnvironmentPlugin 已经有一个 public 构造函数。所以你可以这样做:
ControllerEnvironment env = new DirectAndRawEnvironmentPlugin();
if(!env.isSupported()) {
env = ControllerEnvironment.getDefaultEnvironment();
}
如何将 ControllerListener 添加到 jinput 库中的控制器。 我知道 ControllerListener class 是一个接口,并且在 ControllerEnvironment 中有一个添加监听器的方法,但即使我这样做也没有任何反应,我如何做到 运行 呢?
目前还没有触发 ControllerListener 方法的插件。可能不会有来自创作者的任何插件,因为该项目现在很长时间没有更新,最后一次更新只是为了删除 Windows 10 未知的通知。
目前您唯一的解决方案是:
- 控制器的 poll 方法 returns 布尔值。如果这个布尔值 为假则控制器被移除。
- 编写您自己的插件或修改现有插件以触发方法 在 ControllerListener 接口中
- 每隔几秒重建环境并检查 新控制器阵列与旧控制器阵列的差异。
对于最后一个解决方案,仅调用 ControllerEnvironment.getDefaultEnvironment().getControllers() 是不够的。您必须再次调用插件构造函数。由于大多数插件 类 都在包可见性上,您可能必须编辑原始源代码才能使它们 public。 DirectAndRawEnvironmentPlugin 已经有一个 public 构造函数。所以你可以这样做:
ControllerEnvironment env = new DirectAndRawEnvironmentPlugin();
if(!env.isSupported()) {
env = ControllerEnvironment.getDefaultEnvironment();
}