比较Cocos2d-x v2.x与v3.x的截图功能

转载 2015年04月07日 09:39:23

(1)Cocos2d-x 2.x

Cocos2d-x 2.x没有提供截图功能,但是可以用CCRenderTexture来实现这个功能:

  1. void CTestLayer::SaveScreenShot()  
  2.   {  
  3.       //获取屏幕尺寸    
  4.       CCSize size = CCDirector::sharedDirector()->getWinSize();  
  5.       //使用屏幕尺寸初始化一个空的渲染纹理对象    
  6.       CCRenderTexture* texture = CCRenderTexture::create((int)size.width, (int)size.height);  
  7.       //设置位置        
  8.       texture->setPosition(ccp(size.width/2, size.height/2));  
  9.       //开始获取        
  10.       texture->begin();  
  11.       //遍历场景节点对象,填充纹理到texure中    
  12.       CCDirector::sharedDirector()->getRunningScene()->visit();  
  13.       //结束获取    
  14.       texture->end();  
  15.       //保存为PNG图,Win32/Debug目录下    
  16.       texture->saveToFile("screenshot.png", kCCImageFormatPNG);  
  17.   }  

(2)Cocos2d-x 3.x

在Cocos2d-x 3.2之前,引擎也没有提供截图功能,同样可以使用RenderTexture实现:

  1. void Director::saveScreenshot(const std::string& fileName,const std::function<void(const std::string&)>& callback)  
  2.   {  
  3.       Image::Format format;  
  4.       //进行后缀判断    
  5.       if(std::string::npos != fileName.find_last_of(".")){  
  6.         auto extension = fileName.substr(fileName.find_last_of("."),fileName.length());  
  7.         if (!extension.compare(".png")) {  
  8.             format = Image::Format::PNG;  
  9.         } else if(!extension.compare(".jpg")) {  
  10.             format = Image::Format::JPG;  
  11.         } else{  
  12.             log("cocos2d: the image can only be saved as JPG or PNG format");  
  13.             return;  
  14.         }  
  15.     } else {  
  16.         log("cocos2d: the image can only be saved as JPG or PNG format");  
  17.         return ;  
  18.     }  
  19.     //获取屏幕尺寸,初始化一个空的渲染纹理对象    
  20.       auto renderTexture = RenderTexture::create(getWinSize().width, getWinSize().height, Texture2D::PixelFormat::RGBA8888);  
  21.       //清空并开始获取    
  22.       renderTexture->beginWithClear(0.0f, 0.0f, 0.0f, 0.0f);  
  23.       //遍历场景节点对象,填充纹理到RenderTexture中    
  24.       getRunningScene()->visit();  
  25.       //结束获取    
  26.       renderTexture->end();  
  27.       //保存文件    
  28.       renderTexture->saveToFile(fileName , format);  
  29.       //使用schedule在下一帧中调用callback函数    
  30.       auto fullPath = FileUtils::getInstance()->getWritablePath() + fileName;  
  31.       auto scheduleCallback = [&,fullPath,callback](float dt){  
  32.           callback(fullPath);  
  33.       };  
  34.       auto _schedule = getRunningScene()->getScheduler();  
  35.       _schedule->schedule(scheduleCallback, this, 0.0f,0,0.0f, false"screenshot");  
  36.   }  
(3)从Cocos2d-x 3.2之后开始,引擎提供了captureScreen函数来实现截图功能:

  1. void Util::captureScreen(const std::function<void(boolconst std::string&)>& afterCaptured, const std::string& filename); 

Cocos2d-x简单的Log类封装

UMLog.h 头文件  :  /* DO NOT EDIT THIS FILE - it is machine generated */ #ifndef UM_ANDROID_LOG #defin...
  • bboyfeiyu
  • bboyfeiyu
  • 2014-03-10 13:00:21
  • 1517

RMI plugin for eclipse keygen

  • 2011年03月17日 12:43
  • 350KB
  • 下载

Cocos2d-x3.1及3.2实现截屏功能

1、Cocos2d-x3.1 在Cocos2d-x3.2之前,Cocos引擎没有提供截图功能,但是可以通过RenderTexture实现, 1.1首先在CCDirector.h中添加如下代码:并在...
  • yuxikuo_1
  • yuxikuo_1
  • 2014-09-04 14:04:16
  • 2006

Cocos2d-x 截图功能

(1)Cocos2d-x 2.x Cocos2d-x 2.x没有提供截图功能,但是可以用CCRenderTexture来实现这个功能: void CTestLayer::SaveScree...
  • w174504744
  • w174504744
  • 2014-09-03 17:44:03
  • 4109

Cocos2d-X中实现批处理精灵

使用普通方法实现批处理精灵 在Sprite.h中添加下面的代码 #ifndef __Sprite_SCENE_H__ #define __Sprite_SCENE_H__ #include "c...
  • u010105970
  • u010105970
  • 2014-10-08 21:53:16
  • 1800

FusionCharts v3.X功能特性参数介绍

  • 2011年01月12日 15:07
  • 3KB
  • 下载

Cocos2d-x-3.x版 Js Binding 的手动绑定实现

网上流传的是一份2.x版本的,现在已更新到3.x,经过千辛万苦,终于调试成功。 1 .首先定义待绑定的类 AnimationKoo.h #ifndef __AnimationKoo_H__ #d...
  • dayday_up2
  • dayday_up2
  • 2015-04-08 16:11:00
  • 1370

【Cocos2d-x】截图分享功能

Cocos2d-x截图实现 #include "cocos2d.h" USING_NS_CC; // 设置纹理宽、高、像素质量 CCRenderTexture* tx = CCRen...
  • linchaolong
  • linchaolong
  • 2015-03-19 09:41:12
  • 2193

PX4FMUv2.4 DXP文件

  • 2014年12月22日 16:44
  • 31KB
  • 下载

西门子各类授权大全100个

  • 2011年06月22日 15:54
  • 130KB
  • 下载
收藏助手
不良信息举报
您举报文章:比较Cocos2d-x v2.x与v3.x的截图功能
举报原因:
原因补充:

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