Add web map editor prototype

This commit is contained in:
2026-06-10 00:12:17 +08:00
parent fb54c9f207
commit 759abfd527
5 changed files with 1311 additions and 8 deletions
+45 -8
View File
@@ -63,6 +63,43 @@ tools/map_editor/
当前优先推荐轻量网页工具,因为它能更快完成 `.map` 可视化编辑,且不影响引擎编译链路。
## 当前实现
首版网页工具已建立:
```text
tools/map_editor/
├─ index.html
├─ styles.css
├─ app.js
└─ README.md
```
本地运行:
```powershell
python -m http.server 8787
```
打开:
```text
http://127.0.0.1:8787/tools/map_editor/
```
当前能力:
- 从仓库静态服务加载 `game/assets/map/stage_01.map`
- 通过文件选择打开任意 `.map`
- Canvas 可视化 world、camera、player spawn、collision、rect、tile_rect、battle zone、spawn。
- 对象列表选择和画布点击选择。
- 网格吸附拖动对象。
- 属性面板编辑选中对象的数值或文本。
- 新增/删除 tileset、layer、collision、tile_rect、battle zone、spawn。
- 导出兼容 `StageMapLoader``.map` 文本。
浏览器安全限制下,纯静态网页不能直接覆盖本地源文件;当前通过 Download 导出 `.map`。后续部署到服务器时,可以增加一个保存接口,把编辑器导出的文本写回服务端文件或数据库。
## 数据边界
编辑器只负责编辑 `.map` 数据,不负责:
@@ -79,14 +116,14 @@ tools/map_editor/
完成时应达到:
1. 能载入当前 `stage_01.map`
2. 能看到地面、平台、battle zone、spawn point。
3. 能新增/移动/删除一个 `collision`
4. 能新增/移动/删除一个 `tile_rect`
5. 能保存 `.map`
6. 保存后的 `.map` 用游戏启动不报解析错误
7. Windows 构建通过,短启动通过。
8. Switch 构建能把保存后的 `.map` 打进 RomFS。
1. 已完成:能载入当前 `stage_01.map`
2. 已完成:能看到地面、平台、battle zone、spawn point。
3. 已完成:能新增/移动/删除一个 `collision`
4. 已完成:能新增/移动/删除一个 `tile_rect`
5. 已完成:能导出 `.map`
6. 已完成:编辑器 parser/serializer 烟测通过,保存格式保持 `StageMapLoader` 兼容
7. 待后续地图修改后复测:Windows 构建通过,短启动通过。
8. 待后续地图修改后复测:Switch 构建能把保存后的 `.map` 打进 RomFS。
## 后续增强