Cocos2dx 中大量读取图片的实现

       首先肯定得对图片进行分类,如一款卡牌游戏,图片有角色,角色icon,武器,武器icon等;这里用枚举对其分类标识:

enum UIIMAGE
{
      ARMOR_IMG,
      ARMOR_ICON,
      EQUIP_IMG,
      EQUIP_ICON,
      ITEM_ICON,

      MAX_UIIMAGE
}

       有了图片分类,其加载路径也是一一对应的,故路径分类也如下:

static const char * UIIMAGEPATH[MAX_UIIMAGE] = 
{
      "armorImg\\",
      "armorIcon\\",
      "equipImg\\",
      "equipIcon\\",
      "itemIcon\\",
}

       接着就是实现图片加载的方法了:

void UIDepository::bindToUIImg(gui::UIImageView * img, UIIMAG type, int stuffID)
{
      if(NULL == img)
      {
            return;
      }

      int imgID = 0;
      switch(type)
      {
            case ARMOR_IMG:
            {
                  const xxx armor = xxx->getArmor(stuffID);            //这个通过固有的方法获取其角色对象(包括iconID)
                  imgID = armor->IconID;
            }
            break;
            // 下面类比上面
            case ARMOR_ICON:...
            case EQUIP_IMG:...
            case EQUIP_ICON:...
            case ITEM_ICON:...
      }

      std::string filePath = UIIMAGEPATH[type];
      filePath += CCString::createWithFormat("%d.png", imgID)->getCString();
      //由此可见,图片保存的名字必须是与其ID对应,即名字为:ID.png(如:110.png)
      img->loadTexture( filePath.c_str() );
}


       方法调用如下:

      uiDepository::bindToUIImg(img, ARMOR_ICON, armor->armorID);

      各个参数是什么意思,相信大家是能看得懂的。


      至此,已实现cocos2dx游戏中的图片加载。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值