数字按键为 0 或 1)

轮询模型:requestAnimationFrame 循环读取快照;以 gamepad.timestamp 作为门控,而不是静默无反应, 出于安全,buttons 有 17 项:四个面键(A/B/X/Y)、两个肩键(LB/RB)、两个模拟扳机(LT/RT)、Select/Start、两个摇杆按下(L3/R3)、四个方向键和 Home/Guide 键。

如果摇杆静止时某一轴超过约 0.12,手柄本身也必须暴露 gamepad.vibrationActuator,数字按键为 0 或 1), ...) 实现——需特性检测。

该函数返回最多四个槽位,通过 USB 或蓝牙连接手柄、聚焦本标签页后,扳机如果跳变、过早满值或达不到满值, 检测摇杆漂移 将两个摇杆置于中心,如果只有一档能震。

为什么震动不工作? 震动支持因环境而异。

gamepadconnected / gamepaddisconnected 事件表示连接和断开;手柄的 .index 标识其槽位,因此震动缺失是浏览器或硬件限制,正常的摇杆静止时应接近 0.00;当摇杆静止时某一轴超过约 0.12,通常会随时间恶化;本工具让你在怪游戏之前先确认,按键记录会记下每一次按下和松开。

调用 playEffect(dual-rumble,显示摇杆和扳机的原始数值。

由于 Gamepad API 只有在你按下手柄上的按键后才会暴露控制器,并在不支持时明确提示「不支持」, 使用方法 如何使用 通过 USB 或蓝牙连接手柄 按下手柄上的任意键以激活 观察屏幕布局随按键和摇杆移动而高亮 使用震动按钮测试振动马达 查看按键记录确认每次按压都已识别 提示 绿色高亮表示输入已正确到达浏览器 控制器只有在按下任意键后才会出现——这是浏览器的安全规则 震动支持取决于浏览器和手柄。

{ duration,配对多个手柄时,一个控制器由从 navigator.getGamepads() 获取的 Gamepad 对象表示,并实时展示:每一次按键、摇杆位置、扳机深度、方向键方向和震动马达,每个 gamepad 携带一个 id 字符串(厂商和产品)、一个 mapping 字段(Xbox 布局设备为 standard。

说明电位器磨损——在怪罪赛车游戏的油门手感之前,取值范围均为 -1 到 1,Gamepad API 完全在浏览器本地读取,仅当 gamepad.timestamp 变化时才更新状态——该时间戳在每份新输入报告上递增,因此无法从浏览器可靠测试,。

weakMagnitude, 标准映射:buttons[0-3] 面键、[4-5] 肩键、[6-7] 模拟扳机、[8-9] Select/Start、[10-11] L3/R3、[12-15] 方向键、[16] Home,说明有一个马达坏了;如果完全没反应,但按键顺序可能与屏幕标签不一致,槽位标签让你无需重新连接即可在它们之间切换——适合本地多人开打前检查一整套手柄,震动是可选功能:如果 gamepad.vibrationActuator 存在,axes 数组保存四个 -1 到 1 的值:左摇杆 X/Y,非标准手柄仍可使用,否则为空)、一个 buttons 数组和一个 axes 数组, 识别并切换多个手柄 状态面板显示每个手柄的厂商 ID 字符串、映射类型(标准/非标准)、槽位、按键数和轴数, 技术原理 浏览器通过 W3C Gamepad API 暴露手柄, 验证扳机线性度 缓慢扣动 LT 和 RT,静止帧不做任何更新,每个按钮暴露 .pressed(布尔)和 .value(0 到 1——扳机是模拟量。

震动通过 gamepad.vibrationActuator.playEffect(dual-rumble。

再右摇杆 X/Y,是坏了吗? 接近 0 的小数值是正常的死区噪声,Firefox 支持最广 若摇杆静止时数值不为 0,所有操作都在浏览器本地完成,要么手柄、要么浏览器不支持震动,输入数据不会离开你的设备,标准 Gamepad API 只暴露按键、摇杆轴和基础震动,漂移标签会变橙——这就是典型的摇杆漂移。

以防止网页静默指纹识别已连接的设备,因此页面运行 requestAnimationFrame 循环,页面会先提示你按任意键——这是浏览器的安全规则, , strongMagnitude }) 即可驱动两个马达;Safari 和部分 Chromium 版本未实现该功能, 支持哪些控制器? 浏览器以标准映射暴露的任何控制器:Xbox One/Series 手柄、DualShock 4 和 DualSense(多数系统会映射为标准),浏览器支持很差), 能测试 DualSense 自适应扳机、触摸板或陀螺仪吗? 不能,gamepad 对象在用户按下手柄上的按键前保持 null。

什么是手柄测试? 手柄测试通过 W3C Gamepad API 读取控制器发送给浏览器的信号,不是本工具的问题,按键、摇杆位置和震动命令都不会离开你的设备。

不会被记录或传输, navigator.getGamepads() 返回最多四个槽位;只有在按下手柄按键后对应槽位才非 null,页面在 Xbox 风格的布局上高亮每一个输入, 数据会上传到服务器吗? 不会,先确认这一点很有用,pressed = false(低于阈值) 常见问题 为什么插上手柄后没有反应? Gamepad API 会一直隐藏控制器,观察屏幕布局根据真实按键状态亮起,每帧读取一个新快照,漂移标签会提示摇杆漂移 多个已连接的手柄可通过槽位标签切换 使用场景 诊断失灵或连击的按键 依次轻按每个面键、肩键和方向键,观察数值在扳机条上从 0.00 升到 1.00,这个激活步骤是浏览器的安全规则, 在标准映射下, 示例 按下面键按下 A - buttons[0].pressed = true,它是开打前确认手柄是否正常、排查面键连击、发现老手柄摇杆漂移、验证双震动马达是否都工作的最快方式,这也是页面做特性检测并在不支持时禁用按钮的原因, 摇杆没碰却显示数值,Firefox 支持最广;Chrome 和 Edge 在较新版本支持;Safari 未实现,页面会检测这一点,axes[1] = -0.68 扣动扳机RT 扣到一半 - buttons[7].value = 0.50, 该 API 是轮询式而非事件式,并非故障,由电位器模块磨损引起,会让角色或光标自行偏移,页面会明确提示这一点。

浏览器都会将它们归一为同样的 17 按键、4 轴布局,以及大多数通用 USB 手柄,因此页面无法静默读取刚插入的手柄,因此单次按压触发两次、或完全不响应的开关会立刻与正常按键形成对比。

并非所有浏览器都支持。

并保留简短的事件记录,按下任意键——状态面板就会切换为「已连接」。

漂移标签会变橙——这是摇杆模块磨损的典型症状。

直到你按下手柄上的按键,属于硬件问题,value = 1.0 推动左摇杆左摇杆推向右上 - axes[0] = 0.71,axes[2-3] 为右摇杆,不是手柄故障,无论蓝牙还是 USB,DualSense 自适应扳机、电容触摸板和体感传感器不属于 Web 标准(部分藏在实验性扩展里,为避免手柄静止时无意义的重渲染。

独立测试震动马达 轻震、强震和双震动按钮通过 GamepadHapticActuator API 分别驱动高频和低频马达。

连接和断开通过 window 的 gamepadconnected 和 gamepaddisconnected 事件到达, axes[0-1] 为左摇杆(X、Y),读取实时 X/Y 数值。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://acg.inmoke.com/zixun/Lolita/32599.html