我使用的是Gamepad API "gamepadconnected“函数,它不能正常工作。然而,"gamepaddisconnected“函数由于某种原因而起作用。连接我的蓝牙控制器时,控制台中没有显示任何内容,但是,它确实显示断开连接时显示的信息。
我在这里所得到的是非常基本和标准的:
window.addEventListener("gamepadconnected", function(e) {
console.log("Controller connected");
});
window.addEventListener("gamepaddisconnected", function(e) {
console.log("Controller disconnected");
});我在这里错过了什么?哪里出问题了?我确保第一个有重点的页面是上面的脚本。谢谢你的帮助。
发布于 2017-06-25 06:51:31
MDN声明:“如果当页面加载时,游戏垫已经连接,则当用户按下按钮或移动轴时,将游戏gamepadconnected事件发送到焦点页面。”因此,当您连接pad时,您的页面并不总是接收gamepadconnected事件。API
因此,最好让用户按一个按钮来启动应用程序。这也是有用的,当有多个游戏垫连接到计算机,您的应用程序必须知道使用哪一个。
发布于 2017-07-27 04:45:04
Chrome是臭名昭著的(当然在我使用它之后!)对于its,我们可以说,是GamePad API的个别实现。一个问题是,据我所知,它还不支持" gamePadConnected“事件,您必须轮询GamePad对象的GamePad属性,以便对连接和断开执行任何合理的操作。我知道这完全是痛苦,但这可能反映了一个事实,即这个API的W3C标准仍然在变化中。您还会发现还有其他问题,例如Windows上的browser X与Linux上的browser X不同。
我不知道是否有人尝试过将这些设备插入到Android或iOS设备中(除非您正计划将一个flight移植到该设备上,否则这可能对触摸屏上的需求来说是多余的),但我怀疑如果进行这些实验,还会出现更多的兼容性问题。如果你有能力进入带有USB接口的Android智能手机,并在智能手机浏览器中修补JavaScript,你可能会发现更有趣的问题正在浮出水面。
至于传统的操纵杆(比如我10岁的微软Sidewinder ),这些操纵杆有自己的乐趣可以扔给你。我目前正在努力使其他合理的代码工作与其怪异,例如GamePad对象中的一个轴属性被分配给,等待它,帽子开关,在这个设备上是一个数字数据源,而不是一个模拟数据源。当您坚持使用GamePad API时,要注意兼容性问题的浪潮,直到W3C最终确定标准。
https://stackoverflow.com/questions/44735703
复制相似问题