---
title: Gamepad API:手柄输入与轴按钮读取
keywords:
- Gamepad
- navigator.getGamepads
- axes
- buttons
- 轮询
description: 使用 Gamepad API 读取手柄连接状态、轴与按钮值,构建轮询循环与输入映射,并处理连接与断开事件。
categories:
- 应用软件
- 编程开发
---
概述
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

发表评论 取消回复