使用cocos2d-x把TP合成的大图分解成原来的小图

原创 2013年12月05日 18:22:29
一、思路
   1、cocos2d-x中很容易从给定的plist图片中获取小图纹理创建CCSprite
   2、把CCSprite的纹理绘制到CCRenderTexture上
   3、利用CCRenderTexture获取CCImage
   4、保存CCImage到图片文件
二、实现代码
      
      void SavePngFromPlist(char *plistName);函数的实现
      //从给定的plist文件中获取所有图片的名称
      CCSpriteFrameCache::sharedSpriteFrameCache()->addSpriteFramesWithFile(plistName);
      std::string fullPath = CCFileUtils::sharedFileUtils()->fullPathForFilename(plistName);
      CCDictionary *dict = CCDictionary::createWithContentsOfFileThreadSafe(fullPath.c_str());
      CCDictionary *frameDict = (CCDictionary*)dict->objectForKey("frames" );
      CCArray *allKeyArray = frameDict->allKeys();  
     //
      CCObject *obj = NULL;
      CCARRAY_FOREACH(allKeyArray,obj){
            CCString *tempName = (CCString*)obj;
             //创建sprite
            CCSprite *sprite = CCSprite::createWithSpriteFrameName(tempName->getCString());
            CCImage *image = SpirtetoImame(sprite);//从CCSprite中提取image
            image->saveToFile(tempName->getCString(), false);//把image保存到文件
      }
     
      CCImage * SpirtetoImame(CCSprite *sprite);//函数实现如下
      CCPoint p = sprite->getAnchorPoint();
      sprite->setAnchorPoint(ccp(0,0));
      CCRenderTexture *render = CCRenderTexture::create(sprite->getContentSize().width,sprite->getContentSize().height);
      render->begin();
      sprite->visit();
      render->end();
      sprite->setAnchorPoint(p);
      CCImage *pImage = render->newCCImage( true);
       return pImage;

     以上代码全部使用的是cocos2d-x的API,使用时只需要把要分解的plist和相应的大图放到资源目录,在程序中调用
     SavePngFromPlist(char *plistName)就可以了。

3、改进1
   上面的程序可以很方便的分解TP合成的大图,但是不便于使用。可以所以用配置文件的方式提供需要分解的Plist文件的文件名。


TP:E84BF8F4 基于cocos2d-x,CSV文件读取类。

自己封装的关于csv文件读取的类,可以读取csv文件,并按照自己的需求转换数据结果。提供字符串转float,int等功能。 头文件 #ifndef __CSV_FILE_H__ ...

cocos2d-x-3.0 类图

  • 2015年05月17日 21:38
  • 57.26MB
  • 下载

cocos2d-x位图字体生成工具Bitmap Font Generator的使用(内含命令行)

对于Bitmap Font Generator的使用方法网上的也有很多文章进行了说明,但是可能并不够全面 本文可能也没有那么全面,但是绝对有新颖的地方。 首先,说下为什么要使用这款工具作为cocos2...

cocos2d-x屏幕截图

  • 2013年11月12日 10:41
  • 183KB
  • 下载

Cocos2d-X背景重复贴图

  • 2012年07月07日 17:49
  • 509KB
  • 下载

[cocos2d-x] --- 使用位图工具自定义字体

本文转载自:http://blog.csdn.net/qiurisuixiang/article/details/8984288# Cocos2d-x学习交流群:140326755  Em...

cocos2d-x位图字体生成工具bmfont

  • 2017年02月11日 13:57
  • 357KB
  • 下载

cocos2d-x 3.0 类关系图

  • 2014年07月20日 23:00
  • 406KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:使用cocos2d-x把TP合成的大图分解成原来的小图
举报原因:
原因补充:

(最多只允许输入30个字)