cocos2d-x-3.2塔防游戏开发3:动态的从配置文件中设置怪物的关卡,总波数,初始化钱数

本文介绍了如何在cocos2d-x游戏中使用配置文件动态设置关卡的背景、波数、金钱等信息。通过ValueMap和ValueVector加载levelinfo.plist文件,实现关卡初始化、背景图片、金币数量、怪物波次的动态加载。在`GameScene`中,利用`scheduleSelector`和`newEnemy`方法创建和更新怪物。当所有怪物被消除,会触发过关动画并自动进入下一关。
摘要由CSDN通过智能技术生成


 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().

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值