【独立开发者er Cocos2d-x实战 006】使用Cocos2dx 实现截图功能

今天台风“灿鸿”来袭,博主默默在家码代码。废话不多说,今天我们要讲的就是截图。
Cocos2dx把不同版本实现截图方式不同,我用的是Cocos2dx3.4版本。如果你的版本是Cocos2dx3.2以后的,都是可以用这个方式的,如果是Cocos2dx3.2以前,请参考:

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

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

cocos2dx之保存截屏图片

开门见山,直接上代码:
const std::string strPath = "D:\\cocos2d-x-3.4\\cocos2d-x-3.4\\cocos2d-x-3.4\\projects\\hello\\独立开发者.png";
utils::captureScreen(capCallBack, strPath);

const std::string strPathTmp = "独立开发者er.png";
utils::captureScreen(capCallBack1, strPathTmp);
回调函数如下:
void capCallBack(bool b, const std::string& strPath)
{
    return;
}

void capCallBack1(bool b, const std::string& strPath)
{
    return;
}
大家可以看到,代码中我用了不同的路径进行测试,结论如下:
  1. 使用strPath时,独立开发者.png就在相应的路径下
  2. 使用strPathTmp时,在win7下,路径如下:

注1:这里强调是在win7下,我们在其他平台默认路径是不同的。
注2:win7下我们可以直接截图,但是手机平台就会存在权限问题。
遗留问题:
  • 我在上面连续使用两次截图,但是如上图所示,实际上只有一次截图生效。此问题后续会继续解决,如果已经有人知道愿意请留言。
参考文章:

Cocos2dx3.2学习准备(一):C++11新特性

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-12-26 12:10:59

【独立开发者er Cocos2d-x实战 006】使用Cocos2dx 实现截图功能的相关文章

【独立开发者er Cocos2d-x实战 004】使用Cocos2dx加载plist文件

在[独立开发者er Cocos2d-x实战 004]使用Cocos Studio制作plist文件中,我们已经知道如何制作plist,接下来就说说如何使用和加载plist文件. 代码如下: CCSpriteFrameCache * cache = CCSpriteFrameCache::sharedSpriteFrameCache(); cache->addSpriteFramesWithFile("Plist.plist"); CCSprite *room = CCSprite

【独立开发者er Cocos2d-x实战 003】使用Cocos Studio制作plist文件

在[独立开发者er Cocos2d-x实战 002]使用Cocos Studio创建帧动画中,我们已经知道如何创建帧动画,接下来就说说如何进行plist文件的制作/生成. 步骤如下: 创建一个工程CAnimal: 新建一个文件,类型选择合图: 导入图片资源: 合图导出: 查看合图文件: 查看文件: 温馨提示:我们将鼠标方法合图中的小图片上,就会显示图片名,如下: 版权声明:本文为博主原创文章,未经博主允许不得转载.

【独立开发者er Cocos2d-x实战 008】BMFont生成位图字体工具和Cocos2dx使用加载fnt文件

1.首先我们需要下载并且安装BMFont工具,下载地址如下:http://download.csdn.net/detail/chenqiai0/8899353(里面还有详细的使用文档,如果使用中有什么不明白请留言). 2.安装后,打开BMFont,界面如下,右边的列表是字体库 3.创建一个txt文件,然后输入你用到的文字(注意:保存的时候要用utf-8,否则软件无法识别) 4.接下来的操作请大家下载上述资源,然后按照pdf中讲解的步骤操作,肯定可以实现fnt文件的导出. 注意:需要我们注意的是在

【独立开发者er Cocos2d-x实战 012】Cocos2dx 2.2.6 CCTableView和CCTableViewCell详解

首先抛出一个问题:TableView一个Cell存在多个数据源(例如:Sprite),那应该如何区分点击的是哪一个精灵. 如果对上述描述还是不明白的朋友,请见详细描述:请点击. 如果大家使用现有的Cocos2dx实现,个人感觉是行不通的,因为Cocos2dx认为一个Cell就是一个点击,但是我们现在需要的是一个Cell存在多数据源,这样就需要我们自定义TableView和TableViewCell. 首先我创建三个自定义的类: class MyCustomCell: public CCSprit

【独立开发者er Cocos2d-x实战 013】Cocos2dx 网络编程实战之星座运势

本篇文章主要内容:jsoncpp的使用,Cocos2dx网络编程,聚合数据星座运势接口使用. 1.jsoncpp使用: jsoncpp的生成请参考博客:Jsoncpp使用详解以及链接问题解决 2.聚合数据星座运势接口使用: 我们先登上聚合数据官网,申请相关的数据后,就可以得到APPKEY等信息,调试如下: 3.Cocos2dx网络编程:源码下载请点击(源码中包括jsoncpp文件) #include "HelloWorldScene.h" #include "CocoStud

【独立开发者er Cocos2d-x实战 001】csb文件导出和加载

使用cocos studio进行资源文件导出: 然后在cocos工程中进行加载csb文件: auto myLayout = CSLoader::createNode("/res/Desktop/Layer.csb"); addChild(myLayout); 运行时遇到一个问题-- cocos studio编辑和cocos2dx运行不一致: 上述问题是由于exe文件找不到资源,后来发现我们需要将相关的资源copy到Resources目录下, 同时白色字体的解决方法是在cocos stu

【独立开发者er Cocos2d-x实战 009】Cocos2dx 菜单项CCMenu使用

Cocos2dx中的菜单用CCMenu/Menu类来实现,该类是一个容器,用来装载各种菜单项,用于菜单项可以是图片.系统字体等. 理论就不说了,先上代码: CCMenuItemToggle* item1 = CCMenuItemToggle::createWithTarget(this, menu_selector(HelloWorld::menuItemToggle), CCMenuItemFont::create("on1"), CCMenuItemFont::create(&qu

【独立开发者er Cocos2d-x实战 007】使用Cocos2dx UserDefault.xml

这篇博客是由于下述问题产生的 -(代码1): std::string str = FileUtils::getInstance()->getWritablePath(); CCLOG(str.c_str()); UserDefault::getInstance()->setStringForKey("keyqq11", "value11"); FileUtils::getInstance()->setWritablePath("D:/&q

【独立开发者er Cocos2d-x实战 002】使用Cocos Studio创建帧动画

在CocosStudio中存在两种设置帧动画的方式: 单张图片 多张图片 大家可以点击连接查看相关文章,不过需要指出文章中错误点: addChild(rootNode); //需要添加这一句 版权声明:本文为博主原创文章,未经博主允许不得转载.