通过在浏览器中使用HTML5 Gamepad API,我可以正确地从4个控制器获取输入。
https://www.w3.org/TR/gamepad/
我遇到的问题是从8个控制器获取输入。这些都是Xbox360的控制器,我知道XInput应用程序接口有一个遗留的限制。但是查看上面的API文档,我看不到任何提到限制或HTML5是如何实现的东西。
navigator.getGamepads();
似乎在Chrome和Edge中返回了一个包含4个未定义点的数组,而在FireFox中返回了一个未指定的数组,它似乎仍然限制在4个点上。
你可以看到Windows 10验证我在设备面板中连接了8个控制器,并且所有控制器都在浏览器中单独工作,最多4个游戏手柄。所以我质疑为什么Gamepad API在这里限制了我--是Gamepad API的设计,还是XInput的设计?
发布于 2018-07-07 02:25:13
我发现,如果我插入多个控制器,然后拔出一些索引较低的控制器,即使在刷新之后,chrome上的编号也会一直保留,而在mozilla上,编号只会一直保留到刷新。这让我认为chrome实际上是从Windows中获取数据(因此长度为4),而mozilla本身就是这样做的。
发布于 2018-04-27 14:36:03
如果实现在内部使用xinput API,4是限制,如果他们能够识别除xinput之外的Hid,理论上他们可以通过w3c API进行更多的消息和暴露,但这可能会变得复杂和容易出错,特别是在多个设备进入和退出的情况下。
https://stackoverflow.com/questions/41251051
复制相似问题