概述
Gamepad API 允许获取已连接的手柄列表与输入状态。通过轮询读取 axes 与 buttons 用于控制与交互。
用法/示例
addEventListener('gamepadconnected', e => {
console.log('connected', e.gamepad.id)
})
addEventListener('gamepaddisconnected', e => {
console.log('disconnected', e.gamepad.id)
})
function loop() {
const pads = navigator.getGamepads()
const pad = pads[0]
if (pad) {
const [lx, ly] = pad.axes
const a = pad.buttons[0].pressed
// 使用 lx/ly 与按钮映射控制
}
requestAnimationFrame(loop)
}
loop()
工程建议
- 建立输入映射与死区处理,避免轻微抖动;对多平台手柄差异做适配。
- 提供可视化调试与可配置映射,提升用户体验。
- 在不支持环境提供键盘/鼠标回退方案。
参考与验证
- MDN:Gamepad — https://developer.mozilla.org/docs/Web/API/Gamepad_API

发表评论 取消回复