我可以通过使用浏览器中的HTML5 Gamepad API正确地从4个 Controller 获取输入。

https://www.w3.org/TR/gamepad/

我遇到的麻烦是从8个 Controller 获取输入。这些都是Xbox 360 Controller ,我知道XInput API有一个旧的限制。但是,查看上面的HTML5 API文档,我看不到任何提及限制或API实现方式的信息。
navigator.getGamepads();在Chrome和Edge中似乎返回了4个未定义点的数组,而在FireFox中返回了未指定的数组,但仍似乎限制为4。

您可以看到Windows 10验证我在“设备”面板中连接了8个 Controller ,并且所有浏览器在浏览器中最多可以单独运行4个游戏手柄。所以我在问为什么Gamepad API在这里限制了我-是通过Gamepad API还是XInput设计的?

javascript - HTML5 Gamepad API是否仅限于4个 Controller ?-LMLPHP

最佳答案

好的,我已经进行了广泛的研究和测试,并对此有所信心。
Gamepad API规范并未定义对 Controller 的限制,如您在上面的链接文档中所见。
实际上,navigator.getGamepads()返回:

  • 在Chrome中,由4个未定义值组成的GamepadList,用
    4个Gamepad对象。
  • 在(旧版)Edge中,为4个未定义值的对象数组,填充为
    4个Gamepad对象。
  • 在Firefox中,一个长度为零的数组,其中填充了任意数量的Gamepad对象。

  • XInput似乎不是罪魁祸首,可能会影响实现,因为在Firefox中,我能够混合使用超过四个输入,而其他浏览器却无法识别所有输入。
    我认为这可以归结为Chrome和Edge背后的引擎的错误实现,我只能希望他们看到光明,而Firefox可以保持其实现的灵活性。理想情况下,该标准明确规定了法律。

    关于javascript - HTML5 Gamepad API是否仅限于4个 Controller ?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41251051/

    10-12 01:53