# 01 快速上手 (Quickstart) ## 1. 环境要求 | 工具 | 版本 | 下载 | |:---|:---|:---| | Godot Engine | **4.6 Mono**(带 .NET 支持) | godotengine.org | | .NET SDK | 8.0+ | dotnet.microsoft.com | | Git | 任意 | git-scm.com | > **重要**:必须下载 **Mono/C# 版本** 的 Godot(文件名含 `mono`),否则 C# 文件无法编译。 --- ## 2. 首次运行 ```bash # 1. 克隆项目 git clone # 2. 用 Godot 4.6 Mono 打开 project.godot # 菜单: Project → Open / Import # 3. 等待导入完成(首次约 10-30 秒) # 4. 直接按 F5 运行,或菜单: Debug → Run Project ``` 运行后你会看到:战斗场景直接开始,玩家(青色方块)自动发弹,敌人(红色方块)向玩家靠近。 --- ## 3. 主场景说明 唯一可玩主场景:`scenes/main/combat_s2.tscn` ``` project.godot └── run/main_scene = "res://scenes/main/combat_s2.tscn" ``` ### 游戏循环 ``` 战斗 (BATTLE) ↓ 全部敌人/Boss 死亡 波次结算 → 商店 (SHOP) ↓ 关闭商店 战斗 (下一波) ↓ 玩家死亡 结算屏 (GAME_OVER) → 再来一局 ``` ### 商店内操作 | 按钮 | 功能 | |:---|:---| | 法术卡 | 购买并装入当前法杖 | | 法杖 ⟳ | 切换 Core(法杖类型) | | 🎒 背包 | 打开插槽编辑器,自由排布法术 | | 刷新 | 重新随机商店(花费金币) | | ⚙ 设置 | 难度 / 语言 / 音量 / 清除数据 | | 出发下一波 | 进入下一波战斗 | --- ## 4. 调试工具 ### 编辑器内测试 在任何场景运行时,可以通过 MCP 脚本执行器(godot-mcp 插件)向游戏注入 GDScript: ```gdscript # 示例:快速生成一个 Boss 进行测试 EnemyManager.reset() WaveManager.start_wave(20) # 直接启动 W20 Boss 战 ``` ### HUD 调试信息 运行时左上角 HUD 显示: - 当前波次 / HP / 金币 / XP / 击杀数 - DPS / 蓄力百分比 - `[Core名] [法术id列表]`(当前装备) - 状态实例数 / VFX 数 ### 快速切波次 ```gdscript # 在游戏内执行(须在商店状态下) # 方法:打开商店后跳到指定波次再出发 WaveManager.current_wave = 14 # 设置当前波次基准 # 然后在商店中点「出发下一波」,即进入 W15 精英战 # 或直接重置重开:get_tree().current_scene._cm.start_game() ``` --- ## 5. 项目配置文件 | 文件 | 说明 | |:---|:---| | `project.godot` | 引擎配置、Autoload 列表、主场景 | | `user://save_data.json` | 设置(难度/语言/音量),运行时生成 | | `user://run_a.json` `run_b.json` | 局内 A/B 双槽存档 | | `user://endless_records.json` | 本地排行榜(HMAC 签名) | > `user://` 路径在 Windows 上位于 `%APPDATA%\Godot\app_userdata\Rogue\` --- ## 6. 常见问题 **Q: F5 运行后没有画面(黑屏)** A: 确认下载的是 **Mono 版**;等待 .NET 首次编译完成(约 30s)。 **Q: 敌人/子弹消失了但没有波次结算** A: 可能生命时间到期。重启当前波次:`WaveManager.start_wave(WaveManager.current_wave)` **Q: 更改了 `wand_preset.gd` 的法术数值,但游戏里没有变化** A: `SpellRegistry` 在 `_ready()` 时缓存法术对象;需要重启游戏(F5 重新运行)使改动生效。