Cocos2d-x3.2 屏幕截图


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

//GameScene.h

 

#include "cocos2d.h"

 

USING_NS_CC;

 

class GameScene : public cocos2d::Layer

{

public:

    static cocos2d::Scene* createScene();

     

    virtual bool init();

     

    void menuCallback(Ref* pSender);

     

    CREATE_FUNC(GameScene);

     

private:        //注意不能用auto关键字

    Size size;

    Sprite *sprite;

};

?


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

//GameScene.cpp

 

#include "GameScene.h"

 

USING_NS_CC;

 

cocos2d::Scene* GameScene::createScene()

{

    auto scene = Scene::create();   //创建一个场景

    auto layer = GameScene::create();   //创建一个图层

    scene->addChild(layer);

    return scene;

}

 

//初始化当前的图层

bool GameScene::init()

{

    if(!Layer::init())      //初始化父类

        return false;

     

    //获取屏幕大小

    size = Director::getInstance()->getVisibleSize();

    //auto size = Director::getInstance()->getWinSize();

    //添加一个图片精灵

    sprite = Sprite::create("OnePiece_1.png");

    sprite->setPosition(Vec2(size.width/2, size.height/2));

    this->addChild(sprite);

     

    //创建一个菜单按钮

    auto item = MenuItemFont::create("click", CC_CALLBACK_1(GameScene::menuCallback, this));

    item->setPosition(Vec2(size.width*0.9, size.height/2));

     

    auto menu = Menu::create(item, NULL);

    menu->setPosition(Vec2::ZERO);

    this->addChild(menu);

     

    return true;

}

 

void GameScene::menuCallback(Ref* pSender)

{

    //屏幕截取

    auto texture = RenderTexture::create(size.width, size.height);

    texture->begin();

    Director::getInstance()->getRunningScene()->visit();    //遍历屏幕所有节点

    texture->end();

     

    if (texture->saveToFile("ScreenShot.png", Image::Format::PNG))

    {    //3.0版本改变处,支持PNG与JPG格式

        log("Success.");

         

        //获取截图

        //方式一

        std::string filePath = FileUtils::getInstance()->getWritablePath() + "ScreenShot.png";

        //方式二

        //auto sprite = Sprite::createWithTexture(texture->getSprite()->getTexture());

         

        auto sprite = Sprite::create(filePath.c_str());

        sprite->setPosition(Vec2(size.width/2, size.height/2));

        //sprite->setFlippedY(true);     //将截图正常显示

        sprite->setScale(0.5f);

        this->addChild(sprite);

    }

}

时间: 2024-12-31 19:33:50

Cocos2d-x3.2 屏幕截图的相关文章

cocos2d x3 6移植安卓-cocos2d-x3.6移植安卓时出现图片中错误如何解决?

问题描述 cocos2d-x3.6移植安卓时出现图片中错误如何解决? 解决方案 这是安卓的版本问题啊.你NDK设置编译的andorid17..但是androidMainfest.xml里设置的是最少 9,改下.把9改成17看看 解决方案二: 这是安卓的版本问题啊.你NDK设置编译的andorid17..但是androidMainfest.xml里设置的是最少 9,改下.把9改成17看看

cocos2d x3 0bate相关-Cocos2d-x3.0bate版,关于粒子特效

问题描述 Cocos2d-x3.0bate版,关于粒子特效 用粒子编辑器生成个.plist文件,如何在代码中加载,以及控制其开启和关闭,求大神指点

Cocosd2d实例教程(五) Cocos2d添加虚拟摇杆控制器

1.介绍 cocos2d为我们提供了好用的摇杆控制器,主要是对ZJoystick.h和ZJoystick.m的添加,实现了如下图的功能.通过摇杆可以控制图中精灵的移动.(但是还有一个技术性问题亟待解决,就是精灵移动后会有一个重影留在初始位置) 2.摇杆的实现 1) 将资源中的ZJoystick文件夹加到工程中(页面下方提供下载地址), 精灵的添加以及移动前面已经讲了,不知道的同学可以看教程四.工程名字为ControlWalking 2)修改HelloWorldLayer.h文件.加入一些需要的节

Cocosd2d实例教程(三) Cocos2d瓦片地图的导入

上一节讲了如何使用Tiled制作瓦片地图,下面讲一下如何将地图导入游戏中. 第一步:将生成的文件导入resource中,如图,分别为地图和图片集 第二步:在HelloWorldLayer.h中修改代码,有一定基础的人还是比较好理解的. #import <GameKit/GameKit.h> // When you import this file, you import all the cocos2d classes #import "cocos2d.h" // Hello

【Cocos2d-x】开发实战-Cocos中的字符串、标签和中文乱码

本篇博客讲解: 1.Ccocos2d-x中的字符串 2.使用标签 3.中文乱码问题 Ccocos2d-x中的字符串 使用const char和stdstring 使用cocos2d__String 数据类型之间的转换 Win32平台下中文乱码问题 解决方法一 解决方法二 解决方法三 使用标签 LabelTTF LabelAtlas LabelBMFont Cocos2d-x 3x标签类Label 标签中文乱码问题 源代码下载地址 Ccocos2d-x中的字符串 使用const char*和std

cocos2d-x3.0中数据类型vector,map、value

在3.0中,已经不再使用以前的ccarray,ccdictionary,ccint等从以前的oc继承过来的数据类型,转而加入了自己的数据结构,更加符合c++的开发习惯和思考模式,其中就包括了vector,map和value这三种.今天刚好自己研究了相关的源代码,可以结合分析下. vector就相当于以前的ccarray,对c++的vector做了适当的包装,在一些赋值,释放等相关操作加入了引用计数相关的内存释放操作,使得我们在使用不再需要自己添加retain,release,autoreleas

《Cocos2d 跨平台游戏开发指南(第2版)》一1.10 绘制gIPrimitives

1.10 绘制gIPrimitives Cocos2d使用openGLES,它是一个图形库,用来把对象显示在屏幕上.其实,到目前为止我们所有的绘图工作都依赖于这个图形库.Cocos2d也允许你访问gIPrimitives,使用它可以创建基本形状,如圆形.正方形.矩形等. 1.10.1 准备工作 现在,让我们一起看几个示例.我们将从创建一个简单的圆形开始. 1.10.2 操作步骤 在添加好hero节点之后,添加如下代码: //drawDotNode CCDrawNode* dotNode = [C

【COCOS2D-HTML5 开发之一】新建HTML5项目及简单阐述与COCOS2D/X引擎关系

本站文章均为 李华明Himi 原创,转载务必在明显处注明:  转载自[黑米GameDev街区] 原文链接: http://www.himigame.com/cocos2d-html5/1463.html             真的是有一段时间没写博了,这段时间呢,发生的事情真的挺多,另外自己呢也闲来做了一些自己的喜欢的东西,主要做的还是基于Mac系统的Cocoa框架的各种编辑器吧.(对了,今年初也出了自己第二本书<iOS游戏编程之从零开始-Cocos2d-x与cocos2d引擎游戏开发>)

Cocos2D iOS之旅:如何写一个敲地鼠游戏(一):高清屏显示和UIKit

大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 免责申明:本博客提供的所有翻译文章原稿均来自互联网,仅供学习交流之用,请勿进行商业用途.同时,转载时不要移除本申明.如产生任何纠纷,均与本博客所有人.发表该翻译稿之人无任何关系.谢谢合作! 原文由Ray Wunderlich写成,地址在: http://www.raywenderlich.com/2560/cocos2d-tutorial-for-ios-how

word2013中怎样进行屏幕截图

  屏幕截图步骤1:打开我们需要截图的窗口. 屏幕截图步骤2:用Word2013打开一篇文档,将光标定位在我们需要插入截图的地方,并切换到"插入"选项卡,单击"插图"选项组下的"屏幕截图"命令,在随后展开的菜单中选择"屏幕剪辑"选项. 屏幕截图步骤3:此时我们正在编辑的Word2013文档的窗口会自动最小化,然后整个屏幕会呈现半透明的白色效果,并且鼠标变成十字状态,我们可以拖动鼠标选择我们要截取的图片了. 屏幕截图步骤4:选择