LevelConfigSetupGuide.md 5.0 KB

关卡配置系统使用指南

概述

关卡配置系统允许策划在Cocos Creator编辑器中直接配置关卡数量和对应的JSON文件,无需修改代码即可添加或修改关卡。

组件说明

LevelConfigManager

关卡配置管理器,负责:

  • 管理所有关卡的JSON配置文件
  • 验证配置文件的完整性
  • 提供关卡配置的加载和缓存功能

LevelJsonConfig

单个关卡的配置项,包含:

  • 关卡ID: 唯一标识符
  • 关卡名称: 显示名称
  • JSON文件: 关卡的详细配置

设置步骤

1. 创建关卡配置管理器节点

在场景中创建一个节点,添加 LevelConfigManager 组件:

Canvas
└── LevelConfigManager (添加LevelConfigManager组件)

2. 配置关卡参数

LevelConfigManager 组件的属性面板中:

  • 总关卡数量: 设置游戏总共有多少关
  • 关卡配置列表: 为每个关卡配置对应的JSON文件

3. 创建关卡JSON文件

assets/resources/data/levels/ 目录下创建JSON文件:

assets/resources/data/levels/
├── Level1.json
├── Level2.json
├── Level3.json
├── Level4.json
└── Level5.json

4. JSON文件格式

每个关卡JSON文件应包含以下结构:

{
  "name": "关卡名称",
  "scene": "场景标识",
  "description": "关卡描述",
  "weapons": ["武器1", "武器2", "武器3"],
  "waves": [
    {
      "waveId": 1,
      "enemies": [
        {
          "enemyType": "敌人类型",
          "count": 数量,
          "spawnInterval": 生成间隔,
          "characteristics": ["特性1", "特性2"]
        }
      ]
    }
  ],
  "levelSettings": {
    "initialHealth": 初始血量,
    "timeLimit": 时间限制,
    "difficulty": "难度等级",
    "starRequirements": {
      "1star": { "healthRemaining": 1 },
      "2star": { "healthRemaining": 50 },
      "3star": { "healthRemaining": 80 }
    }
  }
}

5. 拖拽JSON文件到配置列表

  1. 将创建的JSON文件拖拽到项目资源管理器中
  2. LevelConfigManager关卡配置列表 中添加对应数量的配置项
  3. 为每个配置项设置:
    • 关卡ID: 1, 2, 3, 4, 5...
    • 关卡名称: 新手引导、丛林探险等
    • JSON文件: 拖拽对应的JSON文件

使用方法

代码中获取关卡配置

// 获取关卡配置管理器
const levelConfigManager = LevelConfigManager.getInstance();

// 加载指定关卡的配置
const levelConfig = await levelConfigManager.getLevelConfig(1);
if (levelConfig) {
    console.log('关卡名称:', levelConfig.name);
    console.log('可用武器:', levelConfig.weapons);
    console.log('波次数量:', levelConfig.waves.length);
}

// 检查关卡是否已配置
const isConfigured = levelConfigManager.isLevelConfigured(1);

// 获取所有可用关卡
const availableLevels = levelConfigManager.getAvailableLevels();

GameManager集成

GameManager已经集成了关卡配置系统:

// 加载当前关卡配置
const levelConfig = await gameManager.loadCurrentLevelConfig();

// 获取关卡信息
const levelInfo = await gameManager.getCurrentLevelInfo();

调试功能

控制台命令

在Cocos Creator控制台中可以使用以下命令:

// 获取关卡配置管理器
const levelConfigManager = cc.find('Canvas/LevelConfigManager').getComponent('LevelConfigManager');

// 验证所有关卡配置
levelConfigManager.debugPrintAllConfigs();

// 重新加载配置
levelConfigManager.reloadAllConfigs();

// 生成示例配置
const sampleConfig = levelConfigManager.generateSampleConfig(1);
console.log(sampleConfig);

配置验证

系统会自动验证:

  • ✅ 所有关卡是否都有对应的配置
  • ✅ JSON文件是否存在且格式正确
  • ✅ 是否有重复的关卡ID
  • ✅ 必要字段是否完整

验证结果会在控制台输出,帮助策划快速定位配置问题。

扩展功能

添加新关卡

  1. LevelConfigManager 中增加 总关卡数量
  2. 创建新的JSON文件(如 Level6.json
  3. 关卡配置列表 中添加新的配置项
  4. 设置关卡ID、名称和JSON文件

修改现有关卡

直接修改对应的JSON文件即可,系统会自动重新加载配置。

注意事项

  1. JSON文件路径: 必须放在 assets/resources/data/levels/ 目录下
  2. 关卡ID: 必须从1开始,连续递增,不能重复
  3. 文件命名: 建议使用 Level1.json, Level2.json 的格式
  4. 配置完整性: 确保所有必要字段都已填写
  5. 数据类型: 注意JSON中的数字、字符串、数组格式

示例配置

系统已经提供了5个关卡的完整示例配置,可以直接使用或作为参考:

  • Level1.json: 新手引导(草地平原)
  • Level2.json: 丛林探险(森林场景)
  • Level3.json: 魔法废墟(魔幻场景)
  • Level4.json: 钢铁堡垒(工业场景)
  • Level5.json: 终极挑战(赛博都市)

每个示例都包含了完整的武器配置、敌人波次和关卡设置,可以直接使用。