【问题标题】:HTML5 GamePad API returning inccorect or stuck axesHTML5 GamePad API 返回错误或卡住的轴
【发布时间】:2020-07-01 21:34:52
【问题描述】:

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

堆栈:

Angular 6.1

节点 12

火狐 74

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

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

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

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

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

  1. 提高轮询率

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

这有什么原因吗?谢谢!

【问题讨论】:

  • 可能与您的游戏手柄有关。你试过另一个吗?可能您的游戏手柄会通过某些按钮产生噪音。..

标签: html angular web gamepad gamepad-api


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-01-09
    • 1970-01-01
    • 1970-01-01
    • 2023-03-18
    • 2016-06-07
    • 1970-01-01
    • 2012-05-25
    • 1970-01-01
    相关资源
    最近更新 更多