fix: 物理录制器区分「被服务端推回」与「输入没进物理」
原来 frozenTicks 只看「有输入 + tick 级无位移 + 物理没报告碰撞」, 但服务端推回发生在 tick 之间,tick 级位移同样是 0 —— 实测大厅里就是这个形态: collidedHorizontally = false、frozenTicks = 194,而物理其实每 tick 都在动。 现在再按水平速度是否非零细分: - pushedBackTicks:速度非零 → 物理确实动了,位移被服务端位置包抹掉; - frozenTicks:速度也是 0 → 这才是「输入根本没进物理」。 类注释里的判定表也同步改成三分法(被挡住 / 被推回 / 输入没生效)。 测试 469 → 470。
这个提交包含在:
+18
@@ -2,6 +2,24 @@
|
||||
|
||||
本项目遵循 [约定式提交](https://www.conventionalcommits.org/zh-hans/) 与 [语义化版本](https://semver.org/lang/zh-CN/)。
|
||||
|
||||
## [1.9.2] - 2026-10-01
|
||||
|
||||
修正物理录制器里一个会误导排查的分类错误。
|
||||
|
||||
### 修复
|
||||
|
||||
- **`frozenTicks` 把「被服务端推回」误判成「输入没进物理」**:原来只看
|
||||
「有输入 + tick 级无位移 + 物理没报告碰撞」。但服务端推回发生在 tick 之间,
|
||||
tick 级位移同样是 0 —— 实测大厅里就是这个形态(`collidedHorizontally = false`、
|
||||
`frozenTicks = 194`,而物理其实每 tick 都在动)。
|
||||
现在再按**水平速度是否非零**细分:
|
||||
- `pushedBackTicks`:速度非零 → 物理确实动了,位移被服务端位置包抹掉;
|
||||
- `frozenTicks`:速度也是 0 → 这才是「输入根本没进物理」。
|
||||
|
||||
### 测试
|
||||
|
||||
新增 1 个用例(469 → 470)覆盖「被推回」形态。
|
||||
|
||||
## [1.9.1] - 2026-10-01
|
||||
|
||||
**修复「寻路器完全规划不出路径」** —— 这是自动扩地跑不起来的直接原因。
|
||||
|
||||
在新工单中引用
屏蔽一个用户