---

title: Gamepad API:手柄输入与轴按钮读取

keywords:

  • Gamepad
  • navigator.getGamepads
  • axes
  • buttons
  • 轮询

description: 使用 Gamepad API 读取手柄连接状态、轴与按钮值,构建轮询循环与输入映射,并处理连接与断开事件。

categories:

  • 应用软件
  • 编程开发

---

概述

Gamepad API 允许获取已连接的手柄列表与输入状态。通过轮询读取 axesbuttons 用于控制与交互。

用法/示例

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

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部