From 8a89346978edaa4a09c0b6fdfc9dba33c72e5d6f Mon Sep 17 00:00:00 2001 From: 1165565692-lang <1165565692@qq.com> Date: Tue, 9 Jun 2026 14:01:25 +0800 Subject: [PATCH] Plan complete scene skeleton --- game/docs/planning/game_architecture_board.md | 16 +++++--- game/docs/planning/scene_build_plan.md | 37 +++++++++++++++++-- 2 files changed, 43 insertions(+), 10 deletions(-) diff --git a/game/docs/planning/game_architecture_board.md b/game/docs/planning/game_architecture_board.md index b51bb2f..3ff30db 100644 --- a/game/docs/planning/game_architecture_board.md +++ b/game/docs/planning/game_architecture_board.md @@ -408,12 +408,16 @@ mindmap 下一步建议按这个顺序做: -1. `StageAssets`:把灰盒 `StageLayer` 替换为 `stage_01` 背景、tiles 和 props 素材。 -2. `BattleZone`:在现有 zone 数据上做触发、锁镜头、清场解锁。 -3. `EnemyActor`:做第一个敌人占位,接入出生点。 -4. `CombatSystem`:把 hitbox/hurtbox 真正跑起来。 -5. `SpriteAnimator`:把玩家动画从硬编码改成组件。 -6. `InputConfig`:把默认键位/手柄映射迁移到可配置数据。 +1. `CameraController`:修复摄像机不会跟随的问题,实现跟随、边界 clamp、dead zone 和平滑参数。 +2. `CameraZoneLock`:让 battle zone 可以临时锁定摄像机范围,清场后恢复跟随。 +3. `StageLayerSource`:让 `StageLayer` 同时支持色块占位和 sprite 资源路径。 +4. `StageAssetSlots`:建立 `stage_01` 资源槽位和素材来源记录,做到素材可直接落位。 +5. `StageProps`:把后景/前景 props 统一到 layer 数据。 +6. `BattleZone`:在现有 zone 数据上做触发、锁镜头、清场解锁。 +7. `EnemyActor`:做第一个敌人占位,接入出生点。 +8. `CombatSystem`:把 hitbox/hurtbox 真正跑起来。 +9. `SpriteAnimator`:把玩家动画从硬编码改成组件。 +10. `InputConfig`:把默认键位/手柄映射迁移到可配置数据。 ## 素材协作提示 diff --git a/game/docs/planning/scene_build_plan.md b/game/docs/planning/scene_build_plan.md index 0c5c726..feafab3 100644 --- a/game/docs/planning/scene_build_plan.md +++ b/game/docs/planning/scene_build_plan.md @@ -231,8 +231,37 @@ game/assets/stage/stage_01/ ## 10. 下一轮建议任务 -下一轮优先做: +当前目标调整为:先完成“可直接放素材”的场景骨架,而不是立刻进入素材替换。骨架完成后,素材只需要整理到约定目录并填入 layer/prop/tile 数据,不再改场景主流程。 -- 如果素材已准备:创建 `game/assets/stage/stage_01/`,接入背景、tiles 和 props,替换灰盒色块。 -- 如果素材未准备:先做 `BattleZone` 运行时逻辑,让现有 debug zone 可以触发、锁镜头、清场解锁。 -- 保持 debug 碰撞、battle zone、spawn point 显示可用。 +### 完整场景骨架完成定义 + +完成后应达到: + +- 摄像机能跟随玩家横向推进,不再固定在起点视口。 +- 摄像机遵守关卡边界,不露出世界外黑边。 +- 摄像机能被 battle zone 临时锁定到指定范围,清场后恢复跟随。 +- `LevelDefinition` 能表达世界尺寸、玩家出生点、相机边界、碰撞、视觉层、props、battle zone、spawn point。 +- `StageRenderer` 能按层绘制远景、中景、地面/平台、后景 props、前景 props,并支持资源图和色块占位两种来源。 +- `DebugOverlay` 能显示碰撞、battle zone、camera lock、spawn point、玩家包围盒。 +- 关卡灰盒能从起点跑到终点,至少 3 个推进段和 3 个 battle zone 都能被观察到。 +- 素材目录、命名、来源记录文件已经准备好,后续放入 PNG 后只改资源引用。 + +### 场景骨架实施顺序 + +1. `CameraController`:修复当前摄像机不会动的问题,实现玩家跟随、边界 clamp、dead zone 和平滑参数。 +2. `CameraZoneLock`:让 battle zone 可以锁定摄像机范围,先只做 debug 触发和解锁占位。 +3. `StageLayerSource`:扩展 `StageLayer`,让每个 rect 支持色块占位或 sprite 资源路径。 +4. `StageAssetSlots`:创建并记录 `stage_01` 资源槽位,不要求已有最终素材。 +5. `StageProps`:把 props 从旧 `WhiteboxProp` 迁移到统一 layer 数据,支持 back/front 两层。 +6. `SceneDebug`:补齐 F1 debug 总开关,并预留分项开关。 +7. `SceneAcceptanceRun`:PC 和 Switch 都构建通过,PC 能从起点移动到终点并看到相机推进。 + +### 素材落位标准 + +素材准备好后只做这些操作: + +1. 放入 `game/assets/stage/stage_01/background/`、`tiles/`、`props/`、`effects/`。 +2. 在 `stage_01_assets` 或后续关卡数据中填写资源路径。 +3. 把灰盒 `StageLayer` 的色块替换成 sprite/tile 条目。 +4. 对齐视觉块和碰撞块,误差控制在 4 像素以内。 +5. 更新素材来源和授权记录。