地面静止速度修复
本页面记录了站在方块上静止时速度读数异常 (1.57 m/s 或残留重力增量) 的历史修复方案。
📊 地面静止速度修复信息框
| 对比维度 | 早期实现 (v1.0.0) | 现代实现 (v1.1.0+) |
|---|---|---|
| 物理计算方法 | 自定义坐标差分 ($\Delta p = p_t - p_{t-1}$) | 原版 Entity.getKnownSpeed() API |
| 静止测速问题 | 因重力重置误显示为 $1.57\text{ m/s}$ | 静止时完美稳定显示 $0.00\text{ b/s}$ |
| 地面判定 | 简易方块碰撞检测 | 原生 Minecraft 速度向量管理 |
| 精度 | 易产生 Tick 舍入与抖动误差 | 100% 与原版物理引擎完全精准对齐 |
🛠 问题根因与解决方案分析
传统静止伪影问题
在早期版本 (v1.0.0) 中,通过连续帧之间坐标相减计算速度曾引发缺陷:当玩家静止在地面上方块时,Minecraft 持续重置向下重力速度 ($v_y \approx -0.0784$),导致被误判为正在移动 ($1.57\text{ m/s}$)。
解决方案:接入原生 getKnownSpeed() API
自 v1.1.0 起,速度计彻底废除了自定义位置差分估算,改用 Minecraft 原生 Entity.getKnownSpeed() API:
java
Vec3 knownSpeed = entity.getKnownSpeed();静止不动的玩家将清晰准确地返回 $(0.00, 0.00, 0.00)$,显示为完全稳定的 $0.00\text{ b/s}$。
