概述
Gamepad API 允许读取手柄状态,包括按钮与轴。适用于游戏与交互应用,需要在用户交互后启动轮询,处理不同设备映射差异。
示例
```js
window.addEventListener('gamepadconnected', e => {
const loop = () => {
const pads = navigator.getGamepads()
const gp = pads[e.gamepad.index]
if (gp) {
const x = gp.axes[0]
const y = gp.axes[1]
const pressed = gp.buttons[0].pressed
}
requestAnimationFrame(loop)
}
loop()
})
```
工程建议
- 映射与适配:为主流设备提供配置与校准,避免硬编码索引。
- 事件与轮询:连接事件用于启动,主循环用 `requestAnimationFrame` 读取,降低延迟与功耗。
- 兼容:不支持时提供键盘/触控回退;处理权限与安全上下文。
参考与验证
- MDN Gamepad 文档:https://developer.mozilla.org/docs/Web/API/Gamepad_API
- W3C Gamepad 规范:https://www.w3.org/TR/gamepad/
- Chrome 平台文档:https://developer.chrome.com/docs/web-platform/gamepad/

发表评论 取消回复