Improve map editor graphic imports

This commit is contained in:
2026-06-10 00:54:05 +08:00
parent d652d576e3
commit d46bb4dae0
4 changed files with 297 additions and 9 deletions
+20 -4
View File
@@ -94,8 +94,13 @@ http://127.0.0.1:8787/tools/map_editor/
- Canvas 可视化 world、camera、player spawn、collision、rect、tile_rect、battle zone、spawn。
- 对象列表选择和画布点击选择。
- 网格吸附拖动对象。
- 通过“编辑目标”过滤画布命中目标,默认优先编辑 `collision`
- 矩形对象支持右下角手柄缩放。
- 属性面板编辑选中对象的数值或文本。
- 新增/删除 tileset、layer、collision、tile_rect、battle zone、spawn。
- 通过“导入图形”创建 `rect_sprite`,并自动追加一个同坐标、同尺寸的 `collision`
- 导入图形在当前浏览器会话内支持图片预览;图形移动和缩放时,同步更新绑定碰撞块。
- 重新打开 `.map` 时,如果 `rect_sprite` 与某个 `collision` 坐标尺寸一致,编辑器会自动恢复二者的编辑绑定。
- 导出兼容 `StageMapLoader``.map` 文本。
浏览器安全限制下,纯静态网页不能直接覆盖本地源文件;当前通过 Download 导出 `.map`。后续部署到服务器时,可以增加一个保存接口,把编辑器导出的文本写回服务端文件或数据库。
@@ -112,6 +117,14 @@ http://127.0.0.1:8787/tools/map_editor/
素材路径仍由 `.map``game/assets/stage/stage_01/ASSETS.md` 记录。
导入图形时,静态网页不能直接复制图片文件到仓库。编辑器默认把贴图路径写为:
```text
assets/stage/stage_01/props/<图片文件名>
```
实际运行游戏前,需要把对应图片素材放到该目录。编辑器内的图形-碰撞绑定是工具层能力,导出的 `.map` 仍保持运行时兼容格式,不额外写入私有字段。
## 首版验收
完成时应达到:
@@ -120,15 +133,18 @@ http://127.0.0.1:8787/tools/map_editor/
2. 已完成:能看到地面、平台、battle zone、spawn point。
3. 已完成:能新增/移动/删除一个 `collision`
4. 已完成:能新增/移动/删除一个 `tile_rect`
5. 已完成:能导`.map`
6. 已完成:编辑器 parser/serializer 烟测通过,保存格式保持 `StageMapLoader` 兼容
7. 待后续地图修改后复测:Windows 构建通过,短启动通过
8. 待后续地图修改后复测:Switch 构建能把保存后的 `.map` 打进 RomFS
5. 已完成:能导入图形,生成 `rect_sprite` 和同尺寸 `collision`
6. 已完成:导入图形支持移动、缩放和同步调整绑定碰撞块
7. 已完成:能导出 `.map`
8. 已完成:编辑器 parser/serializer 烟测通过,保存格式保持 `StageMapLoader` 兼容
9. 待后续地图修改后复测:Windows 构建通过,短启动通过。
10. 待后续地图修改后复测:Switch 构建能把保存后的 `.map` 打进 RomFS。
## 后续增强
- tile palette。
- tileset 图片预览。
- 保存接口:部署到服务器后,把 `.map` 文本写回服务端文件或数据库。
- battle zone 清场出口配置。
- props 图层编辑。
- 自动检查视觉 tile 与碰撞误差。