1.首先设置配置文件---在resources中新建property.list文件,
当前关的背景文件地图文件levelinfo--bgimg+mapfile
当前关的几波怪物 npcgroup--每关有几波--123波,每波怪物有多少个怪物-设有123个,每个怪物都有各自的类型和血量
实现资源的读取和文件的保存,这样我就可以定义无数的关卡:如图
2.动态的加载关卡:
接下来就是定义代码文件了:.h文件
int money;
int nowLevel;//当前管卡的编号
int npcGroupCount;//当前关共有多少波怪物
int npcNumberCount;//当前波共有多少个怪物
int npcGroup_index;//当前第几波怪物
int npcNumber_index;//当前第几个
void initLevel();//初始化当前关卡
ValueVector levelAllNpc;//当前关卡的所有怪唔得定义
GameScene.cpp中
接下来我们就要初始化当前关卡了,把init()中的加载放到这里:
void GameScene::initLevel(){
this->unscheduleAllSelectors();//停掉计划任务
this->removeAllChildren();//移除关卡的所有内容--------为了切换到下一关时不再加载第二次
this->allPoint.clear();//清空所有点得数据从新加载--为了到下一关的时候从新加载路径
//从当前的关卡中
// cocos中有一个很好用的类叫FileUtils::文件夹读取工具,读取这个文件,写活%d
ValueMapleveInfo=FileUtils::getInstance()->getValueMapFromFile(StringUtils::format("gameLevel00%d.plist",nowLevel));
//获取背景信息
std::stringbg1=leveInfo["levelinfo"].asValueMap()["bgimg"].asString();
//动态的加载背景
auto bg=Sprite::create(bg1);
this->addChild(bg);
bg->setPosition(Director::getInstance()->getWinSize().width/2,
Director::getInstance()->getWinSize().height/2);
//加载金币—动态的读取