fix: 修复编辑器试玩界面的返回问题

This commit is contained in:
cancerai committed 2026-10-22 21:54:28 +08:00
1 parent bf0f065432
commit cc2883458c
2 files changed
+25 -5

No files matched your search

+10
View File
@@ -94,3 +94,13 @@
- `buildData()` 导出 grid 时把每格 `^` 按 `props.dir` 翻译成 `^ v < >`;`hydrate()` 反向把 `^ v < >` 统一还原成 `^` 并写 `props.dir`。往返一致。
- `index.html`:`editor-tip` 改为说明「不会覆盖已有方块」「刺只有一个、方向在右侧属性面板调」。
- 验证:Node 桩冒烟(`/tmp/ed_noclip_spike.mjs`,13 断言全过:不覆盖/擦除/橡皮、buildData 四向翻译、renderProps('^') 不抛、hydrate 往返一致);`death/map/check/solve/smoke/save/key/dom-smoke/ice` 九套全绿。
## 暂停菜单末项:试玩时改为「返回编辑器」
- 需求:试玩界面暂停菜单的最后一项从「返回关卡选择」改成「返回编辑器」,跳转功能同步改。
- 只在「从编辑器试玩」时生效,普通游玩(含从关卡选择启动自制关)仍是「返回关卡选择」,不影响原流程。
- `js/main.js`:
- `G` 新增 `fromEditor` 标志;`Editor.init` 的 `startLevel` 回调置 `true`,`UI.init` 的 `play` 回调置 `false`(`restart`/`retry` 不重置,保持来源)。
- 新增 `toEditor()`(=`editor` 动作原逻辑:state=editor + show scr-editor + `Editor.open()`,因 faces 已存在只是重渲染,地图不丢)。
- `pause()` 里按 `G.fromEditor` 改 `#scr-pause [data-act="quit"]` 的 textContent;`UI.init` 的 `quit` 改为 `() => (G.fromEditor ? toEditor() : toLevels())`。
- 结算屏(scr-result)的 quit 未动,仍为「关卡选择」——用户只要求暂停界面。
- 验证:Node 桩冒烟(`/tmp/ed_pause_quit.mjs`,5 断言:两种来源标签切换、quit 两种跳转、从关卡选择启动自制关复位 fromEditor);`death/map/check/solve/smoke/save/key/dom-smoke/ice` 九套全绿。