比较Cocos2d-x 2.x版本与3.x版本屏幕截图的两种方式
来源:互联网 发布:php常用的系统函数 编辑:程序博客网 时间:2024/05/17 19:58
(1)使用RenderTexture:这是在2.x版本时最常用的的截图方法。
(2)使用utils::captureScreen() :在3.2版本中新增的截图方法。
RenderTexture
RenderTexture这个动态纹理类,顾名思义就是可以动态创建纹理图片。
屏幕截图主要步骤:
开始截图:render->begin();
遍历场景:scene->visit();
结束截图:render->end();
保存截图:render->saveToFile(string& filename, Image::Format format);
其中Image::Format为图片格式,可以保存为PNG、或JPG两种格式。即:Image::Format::PNG、Image::Format::JPG。
1、截图方法
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
void
HelloWorld::capture(Ref* sender)
{
CCLOG(
"ScreenShot"
);
//获取屏幕尺寸大小
Size winSize = CCDirector::sharedDirector()->getWinSize();
//创建RenderTexture,纹理图片大小为窗口大小winSize
RenderTexture* screen = RenderTexture::create(winSize.width, winSize.height);
//屏幕截图
screen->begin();
//开始抓屏
this
->getParent()->visit();
//遍历当前场景Scene的所有子节点信息,画入screen中
screen->end();
//结束抓屏
//保存截图
screen->saveToFile(
"ScreenShot.png"
, Image::Format::PNG);
//保存为PNG格式
//screen->saveToFile("ScreenShot.jpg", Image::Format::JPG); //保存为JPG格式
}
2、保存路径
Win32:保存在 Debug.win32/ 目录下。
Android:保存在 /data/data/com.summer.hello/files/ScreenShot.png 。
utils::captureScreen
在v3.2版本,utils::captureScreen()方法被加入用于保存屏幕截图。
1、定义
1
2
3
4
5
6
7
// afterCaptured:该方法将在捕捉指令后被执行。
// bool: 捕捉屏幕截图是否成功。
// string: 截图存储的路径。
// filename:截图的名字。
// 可以只是一个文件名。像这样ScreenShot.png。
// 也可以是一个绝对路径。像这样/sdcard/ScreenShot.png。
void
captureScreen(
const
std::function<</code>void
(
bool
,
const
std::string&)>& afterCaptured,
const
std::string& filename)
2、截图方法
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
//屏幕截图
void
HelloWorld::capture(Ref* sender)
{
CCLOG(
"ScreenShot"
);
utils::captureScreen(CC_CALLBACK_2(HelloWorld::afterCapture,
this
),
"ScreenShot.png"
);
}
//截图后执行afterCapture
void
HelloWorld::afterCapture(
bool
succeed,
const
std::string& outputFile)
{
if
(succeed)
{
CCLOG(
"%s"
, outputFile.c_str());
//显示截图
Sprite* sp = Sprite::create(outputFile);
sp->setPosition(winSize / 2);
this
->addChild(sp);
sp->setScale(0.25);
//放缩
}
else
{
CCLOG(
"Capture screen failed."
);
}
}
3、保存路径
filename可以只是一个文件名(保存到相对路径):像这样 "ScreenShot.png"。
filename也可以是一个绝对路径:像这样 "/sdcard/ScreenShot.png"。
0 0
- 比较Cocos2d-x 2.x版本与3.x版本屏幕截图的两种方式
- 【Cocos2d入门教程十三】 浅析Cocos2d下3.x与2.x屏幕截图的区别
- Cocos2d-x 2.x版本创建工程方式
- Cocos2d-x:2.x与1.x的版本差别集锦
- Cocos2d-x:2.x与1.x的版本差别集锦
- 比较Cocos2d-x v2.x与v3.x的截图功能
- 比较Cocos2d-x v2.x与v3.x的截图功能
- Cocos2d-x 3.x版本---创建项目
- Python 2.X 与 3.X 版本的重要区别
- cocos2d-x 3.2版本onTouchMoved会闪屏幕的问题
- Cocos2d-X 3.0以上版本屏幕适配的方法
- 总结Cocos2d-x 3.x版本的一些变化
- 总结Cocos2d-x 3.x版本的一些变化
- 总结Cocos2d-x 3.x版本的一些变化
- 总结Cocos2d-x 3.x版本的一些变化
- 【Cocos2d-x 3.x】 3.0版本的全新绘制系统
- 一种简单的方式实现Cocos2d-x 2.x版本按层级关系派发Touch事件
- 简述cocos2d-x 3.0与Cocos2d-x 2.X版本有哪些区别
- PHP学习练手(十六)
- 以海温(Surface Sea Temperature)数据为例,介绍如何利用GrADs软件提取.nc文件
- python之禅
- 光纤检测
- java poi操作excel文件 (新建Excel文件 添加行列、单元格)
- 比较Cocos2d-x 2.x版本与3.x版本屏幕截图的两种方式
- 基于Gabor特征提取和人工智能神经网络的人脸检测matlab代码
- Android Studio之Gradle多渠道打包
- java中获取相对当前日的任何任意一天的方法
- SAP中添加自定义菜单
- Fragment中menu菜单注意事项
- iOS 平台UI设计小结
- android 的Menu菜单
- Android之替换APP字体——Typeface