diff --git a/game/assets/map/stage_01.map b/game/assets/map/stage_01.map index f2e561d..e699275 100644 --- a/game/assets/map/stage_01.map +++ b/game/assets/map/stage_01.map @@ -1,71 +1,142 @@ map stage_01 -world 3200 720 -camera 0 0 3200 720 -player_spawn 160 380 +world 6400 720 +camera 0 0 6400 720 +player_spawn 160 496 -collision 0 600 3200 80 -collision 230 500 220 28 -collision 560 430 260 28 -collision 930 510 260 28 -collision 1250 420 230 28 -collision 1760 500 300 28 -collision 2180 455 260 28 -collision 2650 515 360 28 +collision 0 600 6400 160 +collision 360 500 250 28 +collision 780 440 260 28 +collision 1320 500 280 28 +collision 1960 445 260 28 +collision 2240 390 220 28 +collision 2740 455 300 28 +collision 3300 420 340 28 +collision 3720 485 300 28 +collision 4140 405 260 28 +collision 4660 455 300 28 +collision 5060 380 240 28 +collision 5520 470 320 28 +collision 5960 430 280 28 -layer background_far BackgroundFar 0.25 -rect 0 0 3200 720 0.04 0.06 0.05 1.0 -rect_sprite_src -140 80 980 620 0.34 0.54 0.36 0.38 assets/stage/stage_01/background/mossy_background_decoration.png 0 0 1030 4096 -rect_sprite_src 860 35 940 620 0.30 0.50 0.34 0.34 assets/stage/stage_01/background/mossy_background_decoration.png 1180 0 900 3500 -rect_sprite_src 2020 100 980 560 0.31 0.52 0.34 0.34 assets/stage/stage_01/background/mossy_background_decoration.png 2680 170 1060 1520 -rect_sprite_src 2660 410 1060 360 0.26 0.44 0.30 0.30 assets/stage/stage_01/background/mossy_background_decoration.png 2460 2920 1180 880 +layer background_far BackgroundFar 0.18 +rect 0 0 6400 720 0.03 0.09 0.11 1 +rect_sprite_src -260 0 1240 720 0.18 0.58 0.58 0.34 assets/stage/stage_01/background/mossy_background_decoration.png 0 320 1400 980 +rect_sprite_src 760 -40 1320 760 0.16 0.55 0.55 0.32 assets/stage/stage_01/background/mossy_background_decoration.png 1380 220 1320 1100 +rect_sprite_src 1880 0 1280 720 0.18 0.60 0.57 0.30 assets/stage/stage_01/background/mossy_background_decoration.png 2600 360 1200 960 +rect_sprite_src 2920 -30 1400 750 0.16 0.56 0.55 0.32 assets/stage/stage_01/background/mossy_background_decoration.png 420 1680 1500 1050 +rect_sprite_src 4140 0 1360 720 0.14 0.50 0.52 0.34 assets/stage/stage_01/background/mossy_background_decoration.png 1900 1600 1400 1100 +rect_sprite_src 5260 -40 1320 760 0.16 0.55 0.55 0.32 assets/stage/stage_01/background/mossy_background_decoration.png 2900 1880 1120 1160 endlayer -layer background_mid BackgroundMid 0.55 -rect_sprite_src -180 390 560 260 0.45 0.70 0.45 0.42 assets/stage/stage_01/background/mossy_hills.png 50 580 420 420 -rect_sprite_src 520 335 760 300 0.46 0.72 0.46 0.36 assets/stage/stage_01/background/mossy_hills.png 720 40 1160 500 -rect_sprite_src 1390 360 720 270 0.42 0.68 0.43 0.36 assets/stage/stage_01/background/mossy_hills.png 760 650 1120 720 -rect_sprite_src 2310 330 760 310 0.40 0.66 0.42 0.36 assets/stage/stage_01/background/mossy_hills.png 645 650 1280 840 -rect_sprite_src 2860 400 560 240 0.43 0.68 0.44 0.34 assets/stage/stage_01/background/mossy_hills.png 1460 1520 520 420 +layer background_mid BackgroundMid 0.48 +rect_sprite_src -160 395 620 260 0.42 0.78 0.58 0.44 assets/stage/stage_01/background/mossy_hills.png 50 580 420 420 +rect_sprite_src 360 330 760 310 0.38 0.70 0.56 0.42 assets/stage/stage_01/background/mossy_hills.png 720 40 1160 500 +rect_sprite_src 1020 360 720 285 0.35 0.66 0.52 0.38 assets/stage/stage_01/background/mossy_hills.png 760 650 1120 720 +rect_sprite_src 1620 300 830 350 0.38 0.72 0.56 0.42 assets/stage/stage_01/background/mossy_hills.png 645 650 1280 840 +rect_sprite_src 2340 370 650 270 0.34 0.66 0.52 0.38 assets/stage/stage_01/background/mossy_hills.png 1460 1520 520 420 +rect_sprite_src 2860 320 820 330 0.40 0.74 0.58 0.44 assets/stage/stage_01/background/mossy_hills.png 720 40 1160 500 +rect_sprite_src 3580 380 700 270 0.34 0.66 0.52 0.38 assets/stage/stage_01/background/mossy_hills.png 760 650 1120 720 +rect_sprite_src 4200 290 860 360 0.38 0.72 0.56 0.42 assets/stage/stage_01/background/mossy_hills.png 645 650 1280 840 +rect_sprite_src 4960 350 760 300 0.36 0.68 0.54 0.40 assets/stage/stage_01/background/mossy_hills.png 720 40 1160 500 +rect_sprite_src 5620 385 740 260 0.34 0.64 0.50 0.38 assets/stage/stage_01/background/mossy_hills.png 1460 1520 520 420 endlayer -layer level_visual LevelVisual 1.0 -rect_sprite_src -70 520 1680 270 1.0 1.0 1.0 1.0 assets/stage/stage_01/tiles/mossy_floating_platforms.png 420 1120 1560 490 -rect_sprite_src 1520 520 1680 270 1.0 1.0 1.0 1.0 assets/stage/stage_01/tiles/mossy_floating_platforms.png 420 1120 1560 490 -rect_sprite_src 230 460 240 100 1.0 1.0 1.0 1.0 assets/stage/stage_01/tiles/mossy_floating_platforms.png 500 40 1050 420 -rect_sprite_src 540 390 300 105 1.0 1.0 1.0 1.0 assets/stage/stage_01/tiles/mossy_floating_platforms.png 500 540 1060 430 -rect_sprite_src 910 470 310 105 1.0 1.0 1.0 1.0 assets/stage/stage_01/tiles/mossy_floating_platforms.png 500 40 1050 420 -rect_sprite_src 1230 380 270 105 1.0 1.0 1.0 1.0 assets/stage/stage_01/tiles/mossy_floating_platforms.png 500 540 1060 430 -rect_sprite_src 1740 460 340 105 1.0 1.0 1.0 1.0 assets/stage/stage_01/tiles/mossy_floating_platforms.png 500 40 1050 420 -rect_sprite_src 2160 415 300 105 1.0 1.0 1.0 1.0 assets/stage/stage_01/tiles/mossy_floating_platforms.png 500 540 1060 430 -rect_sprite_src 2625 475 400 120 1.0 1.0 1.0 1.0 assets/stage/stage_01/tiles/mossy_floating_platforms.png 420 1120 1560 490 +layer ceiling_shadow PropsBack 0.72 +rect_sprite_src -120 -165 620 345 0.14 0.34 0.30 0.84 assets/stage/stage_01/props/mossy_hanging_plants.png 70 0 360 1240 +rect_sprite_src 420 -195 560 370 0.12 0.30 0.28 0.78 assets/stage/stage_01/props/mossy_hanging_plants.png 550 0 330 1180 +rect_sprite_src 920 -160 690 340 0.12 0.30 0.28 0.82 assets/stage/stage_01/props/mossy_hanging_plants.png 990 0 360 1300 +rect_sprite_src 1520 -185 600 360 0.12 0.30 0.28 0.80 assets/stage/stage_01/props/mossy_hanging_plants.png 1340 0 470 1040 +rect_sprite_src 2080 -150 680 330 0.14 0.34 0.30 0.76 assets/stage/stage_01/props/mossy_hanging_plants.png 540 1260 420 1040 +rect_sprite_src 2700 -200 640 390 0.12 0.30 0.28 0.82 assets/stage/stage_01/props/mossy_hanging_plants.png 1020 1320 420 1120 +rect_sprite_src 3300 -165 710 350 0.12 0.32 0.28 0.80 assets/stage/stage_01/props/mossy_hanging_plants.png 70 0 360 1240 +rect_sprite_src 3940 -190 620 375 0.12 0.30 0.28 0.78 assets/stage/stage_01/props/mossy_hanging_plants.png 550 0 330 1180 +rect_sprite_src 4520 -160 690 345 0.12 0.30 0.28 0.82 assets/stage/stage_01/props/mossy_hanging_plants.png 990 0 360 1300 +rect_sprite_src 5160 -185 620 365 0.12 0.30 0.28 0.78 assets/stage/stage_01/props/mossy_hanging_plants.png 1340 0 470 1040 +rect_sprite_src 5740 -170 700 350 0.14 0.34 0.30 0.82 assets/stage/stage_01/props/mossy_hanging_plants.png 540 1260 420 1040 endlayer -layer props_back PropsBack 1.0 -rect_sprite_src 110 120 150 500 0.78 0.94 0.72 0.72 assets/stage/stage_01/props/mossy_hanging_plants.png 70 0 360 1240 -rect_sprite_src 780 80 130 430 0.78 0.94 0.72 0.62 assets/stage/stage_01/props/mossy_hanging_plants.png 550 0 330 1180 -rect_sprite_src 1430 115 150 520 0.78 0.94 0.72 0.68 assets/stage/stage_01/props/mossy_hanging_plants.png 990 0 360 1300 -rect_sprite_src 1880 155 190 420 0.78 0.94 0.72 0.62 assets/stage/stage_01/props/mossy_hanging_plants.png 1340 0 470 1040 -rect_sprite_src 2510 160 170 450 0.78 0.94 0.72 0.64 assets/stage/stage_01/props/mossy_hanging_plants.png 540 1260 420 1040 -rect_sprite_src 3030 110 160 500 0.78 0.94 0.72 0.66 assets/stage/stage_01/props/mossy_hanging_plants.png 1020 1320 420 1120 +layer level_visual LevelVisual 1 +rect_sprite_src -120 505 760 265 1 1 1 1 assets/stage/stage_01/tiles/mossy_floating_platforms.png 420 1120 1560 490 +rect_sprite_src 620 505 640 265 1 1 1 1 assets/stage/stage_01/tiles/mossy_floating_platforms.png 420 1120 1560 490 +rect_sprite_src 1220 505 520 265 1 1 1 1 assets/stage/stage_01/tiles/mossy_floating_platforms.png 420 1120 1560 490 +rect_sprite_src 1700 505 760 265 1 1 1 1 assets/stage/stage_01/tiles/mossy_floating_platforms.png 420 1120 1560 490 +rect_sprite_src 2420 505 650 265 1 1 1 1 assets/stage/stage_01/tiles/mossy_floating_platforms.png 420 1120 1560 490 +rect_sprite_src 3050 505 860 265 1 1 1 1 assets/stage/stage_01/tiles/mossy_floating_platforms.png 420 1120 1560 490 +rect_sprite_src 3860 505 620 265 1 1 1 1 assets/stage/stage_01/tiles/mossy_floating_platforms.png 420 1120 1560 490 +rect_sprite_src 4440 505 760 265 1 1 1 1 assets/stage/stage_01/tiles/mossy_floating_platforms.png 420 1120 1560 490 +rect_sprite_src 5160 505 650 265 1 1 1 1 assets/stage/stage_01/tiles/mossy_floating_platforms.png 420 1120 1560 490 +rect_sprite_src 5740 505 760 265 1 1 1 1 assets/stage/stage_01/tiles/mossy_floating_platforms.png 420 1120 1560 490 +rect_sprite_src 350 460 280 105 1 1 1 1 assets/stage/stage_01/tiles/mossy_floating_platforms.png 500 40 1050 420 +rect_sprite_src 760 400 300 105 1 1 1 1 assets/stage/stage_01/tiles/mossy_floating_platforms.png 500 540 1060 430 +rect_sprite_src 1300 460 330 105 1 1 1 1 assets/stage/stage_01/tiles/mossy_floating_platforms.png 500 40 1050 420 +rect_sprite_src 1940 405 300 105 1 1 1 1 assets/stage/stage_01/tiles/mossy_floating_platforms.png 500 540 1060 430 +rect_sprite_src 2220 350 260 105 1 1 1 1 assets/stage/stage_01/tiles/mossy_floating_platforms.png 500 40 1050 420 +rect_sprite_src 2720 415 340 105 1 1 1 1 assets/stage/stage_01/tiles/mossy_floating_platforms.png 500 540 1060 430 +rect_sprite_src 3280 380 380 105 1 1 1 1 assets/stage/stage_01/tiles/mossy_floating_platforms.png 500 40 1050 420 +rect_sprite_src 3700 445 340 105 1 1 1 1 assets/stage/stage_01/tiles/mossy_floating_platforms.png 500 540 1060 430 +rect_sprite_src 4120 365 300 105 1 1 1 1 assets/stage/stage_01/tiles/mossy_floating_platforms.png 500 40 1050 420 +rect_sprite_src 4640 415 340 105 1 1 1 1 assets/stage/stage_01/tiles/mossy_floating_platforms.png 500 540 1060 430 +rect_sprite_src 5040 340 280 105 1 1 1 1 assets/stage/stage_01/tiles/mossy_floating_platforms.png 500 40 1050 420 +rect_sprite_src 5500 430 360 105 1 1 1 1 assets/stage/stage_01/tiles/mossy_floating_platforms.png 500 540 1060 430 +rect_sprite_src 5940 390 320 105 1 1 1 1 assets/stage/stage_01/tiles/mossy_floating_platforms.png 500 40 1050 420 endlayer -layer props_front PropsFront 1.0 -rect_sprite_src 510 560 260 80 0.85 1.0 0.82 0.78 assets/stage/stage_01/tiles/mossy_floating_platforms.png 0 540 430 430 -rect_sprite_src 1490 545 330 95 0.85 1.0 0.82 0.78 assets/stage/stage_01/tiles/mossy_floating_platforms.png 0 540 430 430 -rect_sprite_src 2560 550 330 90 0.85 1.0 0.82 0.78 assets/stage/stage_01/tiles/mossy_floating_platforms.png 0 540 430 430 +layer props_back PropsBack 1 +rect_sprite_src 80 260 170 360 0.70 0.95 0.78 0.68 assets/stage/stage_01/props/mossy_hanging_plants.png 70 0 360 1240 +rect_sprite_src 650 240 140 350 0.70 0.95 0.78 0.56 assets/stage/stage_01/props/mossy_hanging_plants.png 550 0 330 1180 +rect_sprite_src 1120 230 180 390 0.70 0.95 0.78 0.58 assets/stage/stage_01/props/mossy_hanging_plants.png 990 0 360 1300 +rect_sprite_src 1660 200 210 410 0.70 0.95 0.78 0.64 assets/stage/stage_01/props/mossy_hanging_plants.png 1340 0 470 1040 +rect_sprite_src 2210 250 170 340 0.70 0.95 0.78 0.58 assets/stage/stage_01/props/mossy_hanging_plants.png 540 1260 420 1040 +rect_sprite_src 2760 185 190 430 0.70 0.95 0.78 0.62 assets/stage/stage_01/props/mossy_hanging_plants.png 1020 1320 420 1120 +rect_sprite_src 3420 220 210 390 0.70 0.95 0.78 0.60 assets/stage/stage_01/props/mossy_hanging_plants.png 70 0 360 1240 +rect_sprite_src 3960 240 170 360 0.70 0.95 0.78 0.56 assets/stage/stage_01/props/mossy_hanging_plants.png 550 0 330 1180 +rect_sprite_src 4520 170 220 430 0.70 0.95 0.78 0.66 assets/stage/stage_01/props/mossy_hanging_plants.png 990 0 360 1300 +rect_sprite_src 5080 245 190 350 0.70 0.95 0.78 0.56 assets/stage/stage_01/props/mossy_hanging_plants.png 1340 0 470 1040 +rect_sprite_src 5680 215 210 390 0.70 0.95 0.78 0.62 assets/stage/stage_01/props/mossy_hanging_plants.png 540 1260 420 1040 +rect_sprite_src 6120 180 180 440 0.70 0.95 0.78 0.58 assets/stage/stage_01/props/mossy_hanging_plants.png 1020 1320 420 1120 +rect_sprite_src 420 555 170 80 0.95 1 0.78 0.78 assets/stage/stage_01/props/mossy_decorations_hazards.png 220 1640 620 360 +rect_sprite_src 1410 548 180 85 0.95 1 0.78 0.76 assets/stage/stage_01/props/mossy_decorations_hazards.png 220 1640 620 360 +rect_sprite_src 2620 540 190 90 0.95 1 0.78 0.76 assets/stage/stage_01/props/mossy_decorations_hazards.png 220 1640 620 360 +rect_sprite_src 3580 510 210 95 0.95 1 0.78 0.78 assets/stage/stage_01/props/mossy_decorations_hazards.png 220 1640 620 360 +rect_sprite_src 4840 500 210 100 0.95 1 0.78 0.78 assets/stage/stage_01/props/mossy_decorations_hazards.png 220 1640 620 360 +rect_sprite_src 6030 555 190 90 0.95 1 0.78 0.76 assets/stage/stage_01/props/mossy_decorations_hazards.png 220 1640 620 360 endlayer -battle_zone zone_01_intro 520 260 560 340 0 0 1940 720 -spawn zone_01_enemy_a 760 560 -spawn zone_01_enemy_b 980 560 +layer props_front PropsFront 1 +rect_sprite_src -120 590 380 170 0.05 0.08 0.10 0.96 assets/stage/stage_01/tiles/mossy_floating_platforms.png 0 540 430 430 +rect_sprite_src 720 575 460 185 0.05 0.08 0.10 0.92 assets/stage/stage_01/tiles/mossy_floating_platforms.png 0 540 430 430 +rect_sprite_src 1720 570 520 190 0.05 0.08 0.10 0.94 assets/stage/stage_01/tiles/mossy_floating_platforms.png 0 540 430 430 +rect_sprite_src 3040 555 600 205 0.05 0.08 0.10 0.92 assets/stage/stage_01/tiles/mossy_floating_platforms.png 0 540 430 430 +rect_sprite_src 4220 540 560 220 0.05 0.08 0.10 0.94 assets/stage/stage_01/tiles/mossy_floating_platforms.png 0 540 430 430 +rect_sprite_src 5340 575 520 185 0.05 0.08 0.10 0.92 assets/stage/stage_01/tiles/mossy_floating_platforms.png 0 540 430 430 +rect_sprite_src 6060 590 420 170 0.05 0.08 0.10 0.96 assets/stage/stage_01/tiles/mossy_floating_platforms.png 0 540 430 430 +endlayer + +battle_zone zone_01_entrance 520 250 780 350 0 0 1860 720 +spawn zone_01_enemy_a 820 536 +spawn zone_01_enemy_b 1120 521 endbattle_zone -battle_zone zone_02_platform 1420 250 680 350 660 0 2300 720 -spawn zone_02_enemy_a 1620 560 -spawn zone_02_enemy_b 1900 560 +battle_zone zone_02_lower_cavern 1680 230 860 370 960 0 1960 720 +spawn zone_02_enemy_a 1880 501 +spawn zone_02_enemy_b 2260 531 +spawn zone_02_enemy_c 2340 326 endbattle_zone -battle_zone zone_03_exit 2380 250 720 350 1600 0 1600 720 -spawn zone_03_enemy_a 2580 560 -spawn zone_03_enemy_b 2860 560 +battle_zone zone_03_main_hall 3000 210 960 390 2300 0 2100 720 +spawn zone_03_enemy_a 3260 456 +spawn zone_03_enemy_b 3660 486 +spawn zone_03_enemy_c 3440 356 +endbattle_zone + +battle_zone zone_04_high_garden 4380 180 980 390 3600 0 2140 720 +spawn zone_04_enemy_a 4620 441 +spawn zone_04_enemy_b 4920 441 +spawn zone_04_enemy_c 5160 316 +endbattle_zone + +battle_zone zone_05_exit 5480 220 840 360 4760 0 1640 720 +spawn zone_05_enemy_a 5660 506 +spawn zone_05_enemy_b 6040 536 +spawn zone_05_enemy_c 6120 366 endbattle_zone diff --git a/game/docs/modules/data_map.md b/game/docs/modules/data_map.md index 7b754a7..b2d9bcb 100644 --- a/game/docs/modules/data_map.md +++ b/game/docs/modules/data_map.md @@ -74,10 +74,12 @@ endbattle_zone 当前 `stage_01.map` 已接入 Mossy Cavern 场景图集: +- 世界尺寸为 `6400 x 720`,当前按现有摄像机逻辑保持 720 高度,主要扩展横向探索长度。 - `BackgroundFar` 使用 `mossy_background_decoration.png` 做远景洞穴轮廓。 - `BackgroundMid` 使用 `mossy_hills.png` 做中景苔藓轮廓。 - `LevelVisual` 使用 `mossy_floating_platforms.png` 做地面和悬空平台。 -- `PropsBack` / `PropsFront` 使用苔藓悬挂植物和平台边缘装饰。 +- `PropsBack` / `PropsFront` 使用苔藓悬挂植物、发光装饰和前景暗部遮挡。 +- Battle zone 已扩展为 5 段:入口、下沉洞道、主洞厅、高低平台群和出口段。 本轮只接入地图场景视觉,碰撞仍由 `collision` 独立定义;角色、怪物、植物动画和 hazard 玩法暂不接入。 diff --git a/game/docs/modules/stage_rendering.md b/game/docs/modules/stage_rendering.md index eadc165..90784f0 100644 --- a/game/docs/modules/stage_rendering.md +++ b/game/docs/modules/stage_rendering.md @@ -47,6 +47,8 @@ UI - `props/mossy_decorations_hazards.png` - `tiles/mossy_tileset.png` +当前 `stage_01.map` 已按参考图重做为 `6400 x 720` 的横向大地图。视觉结构包含远景洞穴轮廓、中景苔藓丘、顶部压暗悬挂植物、地面/平台裁切、发光装饰和前景暗部遮挡。 + 由于当前 `tile_rect` 只能取 tileset 第一行,正式 Mossy 场景暂时优先使用 `rect_sprite_src` 从大图集裁切。`mossy_tileset.png` 已落位,等后续扩展 tile row/column 或 tile id 后再用于精细铺砖。 ## 约束 diff --git a/game/docs/planning/development_plan.md b/game/docs/planning/development_plan.md index 6d700f9..89d212a 100644 --- a/game/docs/planning/development_plan.md +++ b/game/docs/planning/development_plan.md @@ -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 +layer +rect_sprite_src +battle_zone ``` -后续可以考虑接入 Tiled,或者制作自定义简单编辑器。 +当前已经有自定义网页地图编辑器,后续优先继续完善 `.map` 编辑和部署流程。 ## 7. 动画和美术阶段 diff --git a/game/docs/planning/game_architecture_board.md b/game/docs/planning/game_architecture_board.md index 18dd9d5..4728243 100644 --- a/game/docs/planning/game_architecture_board.md +++ b/game/docs/planning/game_architecture_board.md @@ -204,7 +204,7 @@ mindmap - `StageLayerSource` 已接入:每个 `StageRect` 可选择色块占位或 sprite 资源路径,加载失败时回退色块。 - `StageAssetSlots` 已建立:`stage_01` 资源目录和素材来源记录已预留,素材回来后可直接落位。 - `StageProps` 已统一:后景/前景 props 都走 `StageLayer`,前景层在 actor 之后绘制,可用于近景遮挡。 -- 第一关宽度已扩展到 3200 像素,并加入 3 个 battle zone 占位与敌人出生点。 +- 第一关宽度已扩展到 6400 像素,并加入 5 个 battle zone 占位与敌人出生点。 下一步: diff --git a/game/docs/planning/scene_build_plan.md b/game/docs/planning/scene_build_plan.md index bd48afe..e9cadbf 100644 --- a/game/docs/planning/scene_build_plan.md +++ b/game/docs/planning/scene_build_plan.md @@ -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 玩法。下一步围绕地图编辑器继续微调场景块位置和碰撞对齐。 diff --git a/game/docs/scene_acceptance.md b/game/docs/scene_acceptance.md index f328552..3e605df 100644 --- a/game/docs/scene_acceptance.md +++ b/game/docs/scene_acceptance.md @@ -7,11 +7,11 @@ - 场景入口:`WhiteboxScene` - 关卡数据:`game/assets/map/stage_01.map` - 关卡 fallback:`CreateWhiteboxLevel()` 内置 C++ 白盒数据 -- 世界尺寸:`3200 x 720` -- 玩家出生点:`(160, 380)` -- 关卡边界:`0 -> 3200` +- 世界尺寸:`6400 x 720` +- 玩家出生点:`(160, 496)` +- 关卡边界:`0 -> 6400` - 视口:`1280 x 720` -- Battle zones:`zone_01_intro`、`zone_02_platform`、`zone_03_exit` +- Battle zones:`zone_01_entrance`、`zone_02_lower_cavern`、`zone_03_main_hall`、`zone_04_high_garden`、`zone_05_exit` - 资源槽位:`game/assets/stage/stage_01/` - 地图资源:`game/assets/map/stage_01.map` - Tile 数据:`stage_01.map` 中的 `tileset` / `tile_rect` @@ -72,7 +72,7 @@ Test-Path build\switch\aarch64\release\switch_game\romfs\assets\fonts 1. 启动 Windows 版 `Frostbite2DGame.exe`。 2. 从出生点向右移动,确认摄像机横向跟随且不露出世界外黑边。 -3. 依次进入 3 个 battle zone,确认 camera bounds 平滑切换,没有硬切瞬移。 +3. 依次进入 5 个 battle zone,确认 camera bounds 平滑切换,没有硬切瞬移。 4. 通过 debug 清场或离开区域解除锁定,确认摄像机恢复全关卡跟随。 5. 使用 debug 分项开关检查: - 碰撞矩形和场景网格。 @@ -92,7 +92,7 @@ Test-Path build\switch\aarch64\release\switch_game\romfs\assets\fonts - Switch `Frostbite2DGameSwitch` 构建:通过。 - Switch RomFS:已包含 character、shader、`stage_01` 资源槽位和 `assets/map/stage_01.map`。 - 地图加载:`stage_01.map` 已作为第一关主数据源;C++ 白盒数据仅作为 fallback。 -- 地图 tile 化:`level_visual` 已由 `tileset` / `tile_rect` 表达;tileset 图片缺失时使用 fallback 色绘制。 +- 地图视觉:`stage_01.map` 已扩展为 `6400 x 720` 的 Mossy Cavern 大地图,当前主要通过 `rect_sprite_src` 裁切场景图集表达。 - 引擎能力接入:`Animation`/NPK/PNG 角色资源优先级、`UIScene`/`TextSprite` UI、`Sound`/`Music` cue、`SaveSystem` debug 存档已接入。 - 手动跑图:未在本轮执行,等待后续素材/战斗区域进一步接入时复测。