手柄测试与摇杆漂移检测
检测摇杆漂移的方法是松开两个摇杆,测几秒钟。静止偏差超过约 12% 就怀疑有漂移。浏览器无法测量轮询率。
使用方法
- 用 USB 或蓝牙连接手柄,然后随意按一下任意按键。手柄发出第一次输入之前,浏览器不会显示它。
- 按下按键并推动摇杆。被按下的按键会亮起,扳机显示 0 到 100% 的数值。圆圈显示摇杆位置,数字是 -1 到 1 的轴数值。
- 做漂移检测时,把手柄放下,松开两个摇杆,点击开始。5 秒后会给出每个摇杆的最大偏差、平均偏差和建议死区。
- 如果浏览器和手柄支持,震动按钮可以测试马达。连接了多个手柄时,从列表中选择一个。
计算方法
页面在屏幕的每一帧读取 Gamepad API。摇杆轴的范围是 -1 到 1,静止的摇杆两个轴都应该是 0。
漂移检测会收集 5 秒内的每一帧。样本的偏差是到中心的距离,即 sqrt(x² + y²)。页面显示最大值、平均值和平均静止位置 (X, Y)。
建议死区是最大偏差向上取整到整数百分比,再加 1 个百分点。正常、轻微、疑似漂移的标签使用固定界限(约 5% 和 12%)。这只是经验法则,不是厂商标准,也不是诊断。
如何看漂移结果
摇杆漂移是指没碰摇杆,光标或视角却在动。常见原因是电位器磨损、灰尘和弹簧松动。任何摇杆在静止时都有一点小偏差,所以游戏才会设置死区。
| 最大偏差 | 标签 | 可以尝试 |
|---|---|---|
| 低于 5% | 正常 | 无需处理 |
| 5% 到 12% | 轻微 | 在游戏设置里把死区调到 10% 到 15%,通常就能掩盖 |
| 高于 12% | 疑似漂移 | 清理摇杆周围,换一台设备再测,然后考虑维修或保修 |
手柄没有被识别时
- 页面加载完成后再按一下按键。Chrome、Edge 和 Firefox 要等到第一次输入后才会显示手柄。
- 关闭 Steam、主机配套应用,以及其他可能独占手柄的游戏。
- PlayStation 和 Switch 手柄在大多数浏览器里可以用 USB 连接。蓝牙连接请先在系统设置里配对。
- 如果按键显示成 #0 这样的编号,说明浏览器没有报告标准布局。摇杆和数值仍然可用。
测试时的好习惯
- 把手柄放在桌上做漂移检测,避免手碰到摇杆。
- 重复两三次。真正的漂移每次都会出现,偶然碰一下则不会。
- 有线和无线分开测,因为电量不足也会造成奇怪的读数。
常见问题
怎么做摇杆漂移检测?
连接手柄,按一下按键让浏览器识别,放在桌上,然后点击漂移区的开始。5 秒内不要碰它。结果会显示每个摇杆的最大偏差、平均偏差和建议死区。
能显示手柄的轮询率吗?
不能。Gamepad API 每个屏幕帧只给页面一次快照,所以浏览器无法测出手柄真实的轮询率。这里即使出现一个数字,也只是屏幕刷新率,而不是手柄的。
死区该设多少?
以建议值为起点,把游戏里的死区设得略高一点。死区越大越能掩盖漂移,但摇杆的细小动作也会被忽略。
为什么摇杆从来不是精确的 0?
模拟摇杆有公差,静止时有很小的读数是正常的。只有偏差很大或持续变大,才说明可能漂移。
为什么没有震动?
震动需要浏览器和连接方式开放震动马达。通常在 Chrome 和 Edge 的 USB 连接下可用,Safari 和许多蓝牙连接则没有。
会向服务器发送什么吗?
不会。一切都在你的浏览器里运行,不会保存或上传任何有关手柄的信息。