微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我可以设置JavaScript以立即开始轮询连接的游戏手柄吗?

如何解决我可以设置JavaScript以立即开始轮询连接的游戏手柄吗?

正如Mozilla Docs中针对JavaScript GamePad API所记录的那样,浏览器仅在用户以某种方式(例如,按下按钮或移动轴)与游戏板互动时才真正开始捕获游戏板中的事件。然后,浏览器将以忽略第一个事件为代价开始捕获事件。

是否有一种方法可以防止这种情况的发生,使得游戏手柄的第一个事件也被捕获?在进行任何交互以捕获将推动初始网页组织的“开始状态/配置”之前,是否还可以抢占游戏手柄的状态?

解决方法

您如何阅读游戏手柄状态?我不确定“以忽略第一个事件为代价”的意思。 Gamepad API不会为按钮或轴输入生成事件,您必须轮询navigator.getGamepads()才能获取新数据。

通过注册连接了游戏手柄的侦听器,可以在游戏手柄首次暴露于页面时获得初始状态。 gamepadconnected事件具有一个gamepad属性,该属性保存当前游戏板的状态:

window.addEventListener('gamepadconnected',e => {
  // e.gamepad is the current state when the gamepad was connected.
  console.log(e.gamepad.buttons[0].value);
});

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。