Cocos2dx-2.x截屏不全问题处理

2018-03-28  本文已影响0人  雷尘子

初始化渲染纹理

1. CCRenderTexture::create((int)size.width, (int)size.height);

2. CCRenderTexture::create((int)size.width, (int)size.height, kCCTexture2DPixelFormat_RGBA8888);

以上两种方式都可能造成截屏不全,因为使用了滚动层UIScrollView,效果如下:

使用下面的初始化方式可以解决:

CCRenderTexture* texture = CCRenderTexture::create((int)size.width, (int)size.height, kCCTexture2DPixelFormat_RGBA8888,0x88F0); 

具体截屏方法如下:

//获取屏幕尺寸

CCSize size = CCDirector::sharedDirector()->getWinSize(); 

//定义一个屏幕大小的渲染纹理

CCRenderTexture* texture = CCRenderTexture::create((int)size.width, (int)size.height, kCCTexture2DPixelFormat_RGBA8888,0x88F0); 

//设置位置       

texture->setPosition(ccp(size.width/2, size.height/2)); 

//开始获取       

texture->begin(); 

//遍历场景节点对象,填充纹理到texure中   

CCDirector::sharedDirector()->getRunningScene()->visit(); 

//结束获取   

texture->end(); 

//保存为png图,Win32/Debug目录下

texture->saveToFile("screenshot.png", kCCImageFormatPNG); 

//保存为jpg图,Win32/Debug目录下

//texture->saveToFile("screenshot.jpg", kCCImageFormatJPEG);

获取存储截图的根路径:(在安卓和iOS下具体路径不同,但可用此方法获取)

CCFileUtils::sharedFileUtils()->getWritablePath();

上一篇下一篇

猜你喜欢

热点阅读