0

我遇到了一个问题,当我使用 html5 游戏手柄 API 并偶尔轮询控制器触发值的 Gamepad.axes 时(通常是当我给控制器一堆随机输入时)轴数组中的值会卡住。就像在 gamepad.axes 中一样,即使没有触摸控制器,其中一个触发器也会被完全按下。

堆:

角 6.1

节点 12

火狐 74

我尝试了什么:我尝试了很多可能与我们的代码相关的事情,我尝试了一些主要的事情:

  1. 使用手柄时间戳检查是否卡住

这将起作用,但也会导致其他问题。时间戳卡在某个位置时不会更新,但是当用户按住其中一个触发器时它也不会更新,从而导致误报它被卡住了。

  1. 看看我是否可以强制数组更新

gamepad api 还没有内置方法,并且轴数组是不可变的。

  1. 提高轮询率

我不需要非常高的轮询率,因此将其设置为每 100 毫秒,但将其降低到 8 毫秒似乎已经解决了问题!唯一的问题是我不知道为什么,我更频繁地点击 gamepad.axes 数组,但我想不出任何原因会导致数组比以前更准确地更新。

这有什么原因吗?谢谢!

4

1 回答 1

0

也许尝试使用getAnimationFrame()轮询您的游戏手柄。一种理论可能是您的游戏手柄会积极入睡,也许是电池电量很低?另一种理论只是硬件缺陷。如果您可以物理破解您的游戏手柄,请尝试清洁模拟摇杆机制。

于 2020-12-16T12:21:37.670 回答