我可以通过使用浏览器中的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设计的?
最佳答案
好的,我已经进行了广泛的研究和测试,并对此有所信心。
Gamepad API规范并未定义对 Controller 的限制,如您在上面的链接文档中所见。
实际上,navigator.getGamepads()
返回:
GamepadList
,用4个
Gamepad
对象。 4个
Gamepad
对象。 Gamepad
对象。 XInput似乎不是罪魁祸首,可能会影响实现,因为在Firefox中,我能够混合使用超过四个输入,而其他浏览器却无法识别所有输入。
我认为这可以归结为Chrome和Edge背后的引擎的错误实现,我只能希望他们看到光明,而Firefox可以保持其实现的灵活性。理想情况下,该标准明确规定了法律。
关于javascript - HTML5 Gamepad API是否仅限于4个 Controller ?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41251051/