Expand mossy cavern stage map

This commit is contained in:
2026-06-10 11:08:07 +08:00
parent 21f633658c
commit c6d42ff0e0
7 changed files with 162 additions and 83 deletions
+11 -10
View File
@@ -341,19 +341,20 @@ game/assets
### 6.3 关卡数据格式
初期可以用 JSON
当前项目已经改为 `.map` 文本数据,由 `StageMapLoader` 读取
```json
{
"player_spawn": { "x": 100, "y": 300 },
"bounds": { "x": 0, "y": 0, "w": 3200, "h": 720 },
"solids": [],
"enemy_spawns": [],
"triggers": []
}
```text
map stage_01
world 6400 720
camera 0 0 6400 720
player_spawn 160 496
collision <x> <y> <w> <h>
layer <id> <role> <parallax>
rect_sprite_src <x> <y> <w> <h> <r> <g> <b> <a> <texture> <sx> <sy> <sw> <sh>
battle_zone <id> <trigger_x> <trigger_y> <trigger_w> <trigger_h> <camera_x> <camera_y> <camera_w> <camera_h>
```
后续可以考虑接入 Tiled,或者制作自定义简单编辑器
当前已经有自定义网页地图编辑器,后续优先继续完善 `.map` 编辑和部署流程
## 7. 动画和美术阶段
@@ -204,7 +204,7 @@ mindmap
- `StageLayerSource` 已接入:每个 `StageRect` 可选择色块占位或 sprite 资源路径,加载失败时回退色块。
- `StageAssetSlots` 已建立:`stage_01` 资源目录和素材来源记录已预留,素材回来后可直接落位。
- `StageProps` 已统一:后景/前景 props 都走 `StageLayer`,前景层在 actor 之后绘制,可用于近景遮挡。
- 第一关宽度已扩展到 3200 像素,并加入 3 个 battle zone 占位与敌人出生点。
- 第一关宽度已扩展到 6400 像素,并加入 5 个 battle zone 占位与敌人出生点。
下一步:
+15 -12
View File
@@ -17,7 +17,7 @@
第一轮场景骨架进度:
- `LevelDefinition` 已扩展世界尺寸、玩家出生点、镜头范围、分层视觉、battle zone 和敌人出生点数据。
- 第一关灰盒宽度已扩展到 3200 像素
- 第一关地图已扩展到 `6400 x 720`,当前主数据在 `game/assets/map/stage_01.map`
- `StageRenderer` 已支持远景、中景、地面/平台、后景 props 分层绘制,当前先用色块占位。
- `DebugOverlay` 已能显示碰撞、玩家框、battle zone、camera lock 范围和 spawn point。
- `WhiteboxScene` 已支持 debug overlay,具体快捷键记录在 `../controls.md`
@@ -35,10 +35,10 @@
第一关不急着做最终题材,先做通用 ACT 测试关:
- 横向推进,总宽度先控制在 2400 到 3200 像素。
- 横向推进,当前 Mossy Cavern 测试关宽度为 6400 像素。
- 主要视口仍用 1280x720。
- 地面以平路为主,加入 2 到 3 段平台高低差
- 至少预留 3 个战斗区域,每个区域宽度 480 到 720 像素。
- 主路线先保持连续地面,避免当前平台碰撞不支持台阶/斜坡导致卡关;高度变化主要放在悬空平台上,用于测试跳跃和镜头推进
- 至少预留 5 个战斗区域,每个区域宽度约 780 到 980 像素。
- 每个战斗区域有明确的入口、站位空间、敌人刷出点和退出方向。
- 保留一个跳跃测试段,用来验证移动手感。
- 保留一个窄平台/边缘段,用来验证镜头和碰撞。
@@ -164,11 +164,13 @@ game/assets/stage/stage_01/
### Step 5:加入战斗区域数据
在关卡中标出 3 个 battle zone
当前 Mossy Cavern 大地图标出 5 个 battle zone
- `zone_01_intro`
- `zone_02_platform`
- `zone_03_exit`
- `zone_01_entrance`
- `zone_02_lower_cavern`
- `zone_03_main_hall`
- `zone_04_high_garden`
- `zone_05_exit`
每个区域包含:
@@ -201,7 +203,7 @@ game/assets/stage/stage_01/
- 至少 5 个平台/地面碰撞块。
- 至少 2 层背景。
- 至少 8 个装饰物。
- 至少 3 个 battle zone debug 标记。
- 至少 5 个 battle zone debug 标记。
- 场景资源路径集中在 `game/assets/stage/stage_01/`
- 文档记录已使用素材来源和授权信息。
@@ -224,8 +226,8 @@ game/assets/stage/stage_01/
1. 已完成:扩展 `LevelDefinition`,加入世界尺寸、玩家出生点、镜头限制、敌人出生点、battle zone 占位数据。
2. 已完成:扩展 `StageRenderer`,支持背景层、地面/平台视觉层、后景 props,第一版继续用色块。
3. 已完成:扩展白盒关卡宽度到 3200 像素,并整理成 3 段推进节奏。
4. 已完成:加入 3 个 battle zone debug 标记,但暂不做锁镜头和刷敌逻辑。
3. 已完成:扩展关卡宽度到 6400 像素,并整理成 5 Mossy Cavern 推进节奏。
4. 已完成:加入 5 个 battle zone debug 标记,但暂不做刷敌逻辑。
5. 已完成:加入 spawn point debug 标记,用于后续接 `EnemyActor`
6. 已完成:补 debug 开关,可切换碰撞、battle zone、spawn point。
@@ -252,7 +254,7 @@ game/assets/stage/stage_01/
- `LevelDefinition` 能表达世界尺寸、玩家出生点、相机边界、碰撞、视觉层、props、battle zone、spawn point。
- `StageRenderer` 能按层绘制远景、中景、地面/平台、后景 props、前景 props,并支持资源图和色块占位两种来源。
- `DebugOverlay` 能显示碰撞、battle zone、camera lock、spawn point、玩家包围盒。
- 关卡灰盒能从起点跑到终点,至少 3 个推进段和 3 个 battle zone 都能被观察到;具体验收流程见 `../scene_acceptance.md`
- 关卡灰盒能从起点跑到终点,至少 5 个推进段和 5 个 battle zone 都能被观察到;具体验收流程见 `../scene_acceptance.md`
- 素材目录、命名、来源记录文件已经准备好,后续放入 PNG 后只改资源引用。
### 场景骨架实施顺序
@@ -328,5 +330,6 @@ game/assets/stage/stage_01/
2. 已完成:`stage_01.map``BackgroundFar``BackgroundMid``LevelVisual``PropsBack``PropsFront` 已改用 `rect_sprite_src` 裁切 Mossy 图集。
3. 已完成:碰撞、玩家出生点、camera bounds、battle zone 和 spawn point 保持原数据,不把视觉块当碰撞使用。
4. 已完成:贴图 `LevelVisual` 不再叠加灰盒辅助顶线,避免平台素材显示异常。
5. 已完成:参考 `asset\Mossy Cavern\参考图`,把 `stage_01.map` 扩展为 `6400 x 720` 的横向大地图,包含入口、下沉洞道、主洞厅、高低平台群和出口 5 个推进段。
暂不接入 `BlueWizard Animations``Plant Animations``Slimes` 和 hazard 玩法。下一步围绕地图编辑器继续微调场景块位置和碰撞对齐。