拆分Cocos2D-Xplist中的所有图片另存为单张png

原创 2013年12月04日 17:57:18
//1.在Init里调用定时器(因为cocos autorelease 不是马上释放内存,如果一次性图片太多会导致程序内存不够用)
this->schedule(schedule_selector(HelloWorld::update),0.5f);

//2.定时调用分解
void HelloWorld::update(float delta)
{
	decodePlist();
}

//3.保存文件函数
void saveFile(CCSpriteFrame* pSpriteFrame,const char* name)
{
	CCSize size = CCDirector::sharedDirector()->getWinSize();    
	CCRenderTexture* pScreen = CCRenderTexture::create(size.width,size.height, kCCTexture2DPixelFormat_RGBA8888);

	/*
	CCRenderTexture::saveToFile下的
	bRet = pImage->saveToFile(fullpath.c_str(), true); 修改为false
	*/
	
	//渲染纹理开始捕捉  
	pScreen->begin();  

	CCSprite* pSprite = CCSprite::createWithSpriteFrame(pSpriteFrame);
	pSprite->setPosition(ccp(size.width/2 + pSpriteFrame->getOffset().x,size.height/2+ pSpriteFrame->getOffset().y));
	
	//当前场景参与绘制  
	pSprite->visit();

	//结束捕捉  
	pScreen->end();  

	//保存为png
	pScreen->saveToFile(name, kCCImageFormatPNG);

	CC_SAFE_RELEASE_NULL(pScreen);
	CC_SAFE_RELEASE_NULL(pSprite);
}

//4.解析plist
void HelloWorld::decodePlist()
{
	CCSpriteFrameCache* pSpriteFrameCache = CCSpriteFrameCache::sharedSpriteFrameCache();
	std::string strPngName = "imgAll.png";
	std::string strPlistName = "imgAll.plist";
	pSpriteFrameCache->addSpriteFramesWithFile(strPlistName.c_str(),strPngName.c_str());
	
	//需要先把pSpriteFrames 改成public,否则无法访问
	CCDictionary* pDic = pSpriteFrameCache->m_pSpriteFrames;
	
	CCDictElement* element;
	CCDICT_FOREACH(pDic, element)
	{
		CCSpriteFrame* pFrame = (CCSpriteFrame*)element->getObject();
		const char* pFileName = element->getStrKey();
		saveFile(pFrame,pFileName);
		//解析一个之后删除,并返回,为了下次释放内存
		pDic->removeObjectForKey(pFileName);
		return;
	}
}

通过cocos裁切图片,将大图分为小图

游戏要用动画,美工还没做出来,于是,从网上找来了几张图,不过图是JavaME时代的图,动画都是靠裁切来显示的,于是想将大图分割成小图来用。 图片规格:图中每个小图的大小是相等的,基本上都是正行,整列...

cocos2d-x 输入框CCEditBox的使用

特别说明: 这个版本的CCEditBox,设计有缺陷,背景图片的位置与输入区域的位置不同步,需要自己修改原来的代码,自己加上输入区域的坐标偏移量。 void CCEditBox::setPos...

提取plist文件中的单图或分解plist大图为小图

一般来讲如果你看到了某个界面比较炫的app,肯定会想把它的界面资源拿来用用。将apk包解压之后,总会发现它将一些小图拼成了一个大图,一般就是生产了两个文件:plist文件和png文件。这个时候你想使用...

cocos2d压缩png图片格式

  • 2016年01月20日 11:05
  • 232KB
  • 下载

cocos2d-JS 实现 横 竖 屏 显示提示图片(rotate.png)效果 !!!!!

全局添加旋转屏幕帧听 : window.addEventListener('orientationchange', function(event){ //获取当前场景 var cur...

cocos2d-x3.2用游戏截屏功能提取 Flappy Bird 资源中的单张图片

最近在根据网上的各种教程模仿的做一些以前比较c

1服务器上传图片 2另存为服务器上文件 3生成验证码图片

1.服务器上传图片,分别上传原图和缩略图,并且为原图添加水印。2.读取请求文件并提示浏览器另存为:强制浏览器以另存为的方式打开本次输出的响应报文 3.一般处理程序生成验证码图片...

【加密】Cocos2d-x PNG图片资源加密(修改版)

【说明】 这篇文章是对上一篇 【Cocos2d-x PNG图片资源加密】的补充和扩展,那篇文章转自【旧时尘安】的博客,文中已经对原理和使用讲解的很清晰,这里只是根据我自己的使用情况做一些小小的功...
  • guggy
  • guggy
  • 2017年03月13日 11:09
  • 357
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:拆分Cocos2D-Xplist中的所有图片另存为单张png
举报原因:
原因补充:

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