《塔防类手游开发教程》 第十一节 根据关卡文件动态出怪
来源:互联网 发布:中国电信大数据事业部 编辑:程序博客网 时间:2024/05/22 05:07
我们在玩塔防游戏时,每通过一个关卡,就会重新出现怪物。若是这样,有多少关卡,我们不是就得写多少关卡的代码,那么这样岂不是很繁琐。但是我们通过计划任务的停止,重载,动态的添加怪物,这样就节省了很多工作量。
当通过第一个关卡,计划任务停止,移除所有的节点,在下一个关卡自动添加节点,这样就不会在原有节点上再添加,节点过多不好。其实就是地图没有关,把图层里面的东西全部都删掉,再重新加载一遍。
具体代码:
this->unscheduleAllSelectors();
this->removeAllChildren();
当进入下一关卡的时候,我们还需要当前关卡的怪物波数,当前是第几波,一个多少波,怪物的类型及HP的信息。
具体代码:
//当前关卡一共多少波
this->levelAllNpc=levelInfo["npcgroup"].asValueVector();
this->npcGroupCount=levelAllNpc.size();
this->npcGroup_index=0;
this->npcNumberCount=levelAllNpc.at(npcGroup_index).asValueVector().size();
this->npcNumber_index=0;
//添加提示 当前第几波
auto nowGroupLabel = Label::createWithBMFont("bitmapFontChinese.fnt", " ");
nowGroupLabel->setPosition(Vec2(spritetool->getContentSize().width / 4+100, spritetool->getContentSize().height / 2));
nowGroupLabel->setAnchorPoint(Point(0, 0.5f));
nowGroupLabel->setString( std::to_string(npcGroup_index+1));
nowGroupLabel->setTag(2003);
spritetool->addChild(nowGroupLabel);
//取出当前波 当前个怪物的类型和hp
int type=0;
int hp=0;
if (npcNumber_index<npcNumberCount) {
type=levelAllNpc.at(this->npcGroup_index).asValueVector().at(npcNumber_index).asValueMap()["npcType"].asInt();
hp=levelAllNpc.at(this->npcGroup_index).asValueVector().at(npcNumber_index).asValueMap()["npcHp"].asInt();
npcNumber_index++;
Enemy * e1=Enemy::createEnemy(type,hp);
this->addChild(e1);
allEnemy.pushBack(e1);
}else{
npcNumber_index=0;
npcGroup_index++;//下一波
if (npcGroup_index>=levelAllNpc.size()) {
//停止产生怪物
this->unschedule(schedule_selector(GameScene::newEnemy));
return;
}
- 《塔防类手游开发教程》 第十一节 根据关卡文件动态出怪
- 《塔防类手游开发教程》 第十节 创建关卡配置文件动态读取关卡信息
- 《塔防类手游开发教程》 第十二节 过关后关卡切换
- 《塔防类手游开发教程》 第十二节 过关后关卡切换
- Angular最新教程-第十一节 路由四 (嵌套路由)
- php学习 第十一节
- 第十一节 串口通信
- 第十一节 Trait进阶
- 学校学习ios教程笔记,第十一节初识ios页面中的界面传值
- 第三章 第十一节 总结
- 第十一节,命名空间namespace
- 第十一节 逻辑操作符
- 第十一节 进程间通信
- OC学习第十一节Json
- js第十一节-字符串方法
- 第十一节下篇:Object类
- 第十一节 搭建邮件服务器
- 第十一节:元组 Tuple3
- Android存储方式
- 《塔防类手游开发教程》 第九节 怪物加入血槽以及金币数值
- 《塔防类手游开发教程》 第十节 创建关卡配置文件动态读取关卡信息
- hdu 1261 字串数 排列组合
- Matlab中find函数的用法
- 《塔防类手游开发教程》 第十一节 根据关卡文件动态出怪
- SizeClass和AutoLayout教程1
- 《塔防类手游开发教程》 第十二节 过关后关卡切换
- awk关联数组的下标
- SizeClass 和AutoLayout教程2
- CPP学习笔记-2
- C#第二次作业
- 《塔防类手游开发教程》 第十三节 CocosTudio实现游戏主菜单
- SizeClass 和AutoLayout教程3