关卡配置系统允许策划在Cocos Creator编辑器中直接配置关卡数量和对应的JSON文件,无需修改代码即可添加或修改关卡。
关卡配置管理器,负责:
单个关卡的配置项,包含:
在场景中创建一个节点,添加 LevelConfigManager 组件:
Canvas
└── LevelConfigManager (添加LevelConfigManager组件)
在 LevelConfigManager 组件的属性面板中:
在 assets/resources/data/levels/ 目录下创建JSON文件:
assets/resources/data/levels/
├── Level1.json
├── Level2.json
├── Level3.json
├── Level4.json
└── Level5.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 }
}
}
}
LevelConfigManager 的 关卡配置列表 中添加对应数量的配置项// 获取关卡配置管理器
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已经集成了关卡配置系统:
// 加载当前关卡配置
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);
系统会自动验证:
验证结果会在控制台输出,帮助策划快速定位配置问题。
LevelConfigManager 中增加 总关卡数量Level6.json)关卡配置列表 中添加新的配置项直接修改对应的JSON文件即可,系统会自动重新加载配置。
assets/resources/data/levels/ 目录下Level1.json, Level2.json 的格式系统已经提供了5个关卡的完整示例配置,可以直接使用或作为参考:
每个示例都包含了完整的武器配置、敌人波次和关卡设置,可以直接使用。