Add web map editor prototype
This commit is contained in:
@@ -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。
|
||||
|
||||
## 后续增强
|
||||
|
||||
|
||||
Reference in New Issue
Block a user