mod: 优化跳跃手感,去iwanna元素
This commit is contained in:
1 parent
6c07133a9d
commit
156887e4c3
5 files changed
+72
-26
No files matched your search
@@ -84,3 +84,12 @@
|
||||
2. 顺手加固同行的 null 兜底:`(data['doors'] as List?)?.cast<Map>()` 在 `doors` 为 null 时会因 `.firstWhere` 调在 null 上抛 `NoSuchMethodError`,改为 `?? const <Map>[]`,消除同类崩溃。
|
||||
- **回归测试**:新增 `含 warp 但无匹配门的关卡可正常构建(doorId 类型回归)`——构造含 `W` 且 `doors:[]` 的关卡,`Level(data)` 不再抛 TypeError,且 warp 实体的 `doorId` 为 int(回退序号)。
|
||||
- 验证:`flutter test` 22/22、`flutter analyze` 0 error。
|
||||
|
||||
## 跳跃手感「稍微飘一点」,但高度与二段高度不变(PHY 微调)
|
||||
用户:"跳跃手感再稍微飘一点,但是跳跃高度和其他都不能变"。
|
||||
- **原理**:飘 = 更低重力换更长滞空;但顶点高度由 v²/(2g) 决定,同比例降重力 + 提初速可精确保持高度。物理常量在 `app/lib/src/game/player.dart` 的 `PHY`(web 的 `js/player.js`/`tools/lib-reach.mjs` 在当前仓库已不存在,移植版是唯一定义处,无需再同步求解器)。
|
||||
- **改后值**:GRAV 0.25→0.23、GRAV_FALL 0.32→0.30、GRAV_DJ 0.35→0.322、JUMP 6.6→6.326、DJUMP 6.7→6.420;HSPD/MAXFALL/DJ_INERTIA/WATER_*/ICE_*/SLIDE_* 全未动。
|
||||
- **验证(Python 复刻引擎积分 `vy=min(vy+g,MAXFALL);y+=vy`)**:单跳顶点 83.850px、二段自身 60.800px、总高仍 4.5 格 —— 三者 Δ 均 ≈0;滞空 49→51 帧(+2,≈4%,即"稍微飘")。
|
||||
- **代价(须告知用户)**:滞空变长使单次跳跃的水平飞行距离增加约 HSPD×2 ≈ 5px,关卡跳跃可达性会略变"更宽松",这是"飘"的固有副作用;用户明确要求不重调地图,故未动关卡。
|
||||
- **回归测试**:`test/gameplay_test.dart` 新增 `满力单跳顶点高度保持 ≈83.85px(飘但不改高度)`;并把旧的 `JUMP 6.6 / GRAV 0.25` 断言同步改为新值(松键截止量硬编码 -3 未变,只把 0.25→0.23)。
|
||||
- 验证:`flutter test` 23/23、`flutter analyze` 0 error。
|
||||
Reference in new issue
Block a user