读取控制器使用LWJGL单独触发

时间:2014-06-14 18:08:54

标签: java lwjgl

我想在我写作的游戏中使用控制器。我使用LWJGL Controller类来读取控制器状态。

触发器的状态似乎已被汇总为单个值,表示两个触发器的状态总和。左触发状态是一个在-1和0之间变化的值,右边在0和1之间。

我目前使用getAxisValue()方法来获取合并状态。

我希望能够分别阅读这些值。我有什么方法可以做到这一点吗?

1 个答案:

答案 0 :(得分:0)

"组合触发轴"问题是由DirectInput引起的。 JInput使用DirectInput轮询360控制器。在this article中解释说,轴的组合是有意改变以保持与传统游戏的兼容性。

引用文章:

  

DirectInput中左右触发器的组合是设计使然。当没有用户与设备交互时,游戏总是假设DirectInput设备轴居中。但是,Xbox 360控制器设计用于在未保持触发器时注册最小值,而不是中心。因此,较旧的游戏将承担用户互动。

     

解决方案是组合触发器,将一个触发器设置为正方向,将另一个触发器设置为负方向,因此没有用户交互指示"控件的直接输入"在中心。

     

要分别测试触发器值,必须使用XInput。 `

LWJGL无法提供单独的触发器值,因为它实际上依赖于DirectInput。

最好的做法是找到XInput的java绑定,它允许单独的触发值。