免费域名申请个人网站,wordpress主题xstore,天元建设集团有限公司建行账号,昆明网站建设php植物大战僵尸游戏开发教程专栏地址http://t.csdnimg.cn/xjvbb 游戏关卡数据文件定义了游戏中每一个关卡的数据#xff0c;包括游戏类型、关卡通关奖励的金币数量、僵尸出现的波数、每一波出现僵尸数量、每一波僵尸出现的类型等。根据不同的游戏类型#xff0c;定义了不同的通…植物大战僵尸游戏开发教程专栏地址http://t.csdnimg.cn/xjvbb 游戏关卡数据文件定义了游戏中每一个关卡的数据包括游戏类型、关卡通关奖励的金币数量、僵尸出现的波数、每一波出现僵尸数量、每一波僵尸出现的类型等。根据不同的游戏类型定义了不同的通关要求例如最多使用小车的数量、不可种植的位置、最多使用的植物数量等。
关卡数据文件位置
关卡数据文件在资源文件的Text文件夹中。位置如下图所示。 GAMEWORLD_1DATAS.reanim.compiled 简单模式的关卡数据已加密文件 GAMEWORLD_1DATAS.reanim1.compiled 简单模式的关卡数据未加密文件 GAMEWORLD_1DATAS_DIF.reanim.compiled 困难模式的关卡数据已加密文件 GAMEWORLD_1DATAS_DIF.reanim1.compiled 困难模式的关卡数据已加密文件 文件有已加密和未加密两个版本游戏中可以选择加载不同的版本关于加载代码请看上一篇教程有详细讲解。
数据解释
打开未加密的关卡数据文件如下图所示。文件是一个json格式文件定义了关卡中的相关数据。 Level_1: {IsEncryption: false,UserLose: 430,CoinNumbers: 50,Frequency: 5,ZombiesType: [ 1 ],MunchZombiesFrequency: [],FirstFrequencyTime: 18,GameType: [ 3 ],CarNumbers: 5,UserPlantsNumbers: 10,ZombiesNumbers: [ 1, 3, 3, 3, 10 ],ZombiesTypeProbability: [[ 100, 0, 0 ],[ 100, 0, 0 ],[ 100, 0, 0 ],[ 100, 0, 0 ],[ 100, 0, 0 ]]}, IsEncryption: false 表示是否加密该字段在游戏未使用可以忽略。 UserLose: 430 表示当僵尸在地图上向左移动小于430像素的位置就表示玩家失败。 CoinNumbers: 50 表示玩家成功通关后金币奖励的基数。关卡金币奖励数量不是定值奖励金币数量会根据该基数值进行计算。 Frequency: 5 表示这一关卡总的僵尸波数。这里表示这一关会有5波僵尸出现。 ZombiesType: [ 1 ] 表示僵尸类型它是一个数组。僵尸的类型定义在Zombies.h代码文件中。 /* 僵尸类型 */
enum class ZombiesType
{None 0,CommonZombies,ConeZombies,BucketZombies,CommonDoorZombies,ConeDoorZombies,BucketDoorZombies,LmpZombies,CommonFlagZombies,ConeFlagZombies,BucketFlagZombies,CommonDoorFlagZombies,ConeDoorFlagZombies,BucketDoorFlagZombies,SnowZombies
}; MunchZombiesFrequency: [] 表示大波僵尸的波数它是一个数组可以为空如果值定义为 [1,5] 就表示在第1波和第5波会出现大量僵尸定义后会在关卡的进度条上显示一个小旗子。 FirstFrequencyTime: 18 表示从进入关卡开始到僵尸第一波出现的时间单位为秒。时间到达就会刷新第一波僵尸并播放僵尸出现音效。 ZombiesNumbers: [ 1, 3, 3, 3, 10 ] 表示每一波僵尸的数量它是一个数组数组里面的数量与Frequency定义的值是对应的。 ZombiesTypeProbability: [ [ 100, 0, 0 ], [ 100, 0, 0 ], [ 100, 0, 0 ], [ 100, 0, 0 ], [ 100, 0, 0 ] ] 表示每一波种每一类僵尸出现的概率。它是一个二维数组。 GameType: [ 3 ] 表示定义的游戏类型。它是一个数组。定义不同的游戏类型需要额外的数据信息。数组中的值类型定义如下。 enum class GameTypes
{None -1,CreateWall,AtLeastSunNumbers,FlowerPosition,CarNumbers,UserPlantsNumbers,ZombiesInvisible,SmallZombies,BigZombies,NoPlants,UserLose
}; CarNumbers: 5 这是游戏类型的一种表示游戏通关结束需要至少保留的小车数量。 UserPlantsNumbers: 10 这是游戏类型的一种表示这一关卡最多使用的植物数量。 FlowerPosition: 5 表示花坛的位置数值表示所在列。游戏类型的一种。 AtLeastSunNumbers:1000 表示在通关结束之前至少产生的阳光数量。游戏类型的一种。 NoPlants: [ [ 4, 2 ], [ 4, 3 ], [ 2, 4 ], [ 0, 2 ], [ 0, 3 ], [ 1, 1 ], [ 2, 0 ], [ 3, 1 ] ] 表示不可种植区域是一个二维数组存放多个位置坐标。游戏类型的一种。 后续
下一篇将讲解读取关卡数据的详细代码细节。