cocos 屏幕截屏


#ifndef CaptureTest_hpp

#define CaptureTest_hpp


#include <stdio.h>

#include <iostream>

using namespace std;

#include "cocos2d.h"

USING_NS_CC;

#include "ui/CocosGUI.h"

using namespace cocos2d::ui;

class CaptureTest:public Layer {

public:

    static Scene* createScene();

    bool init();

    CREATE_FUNC(CaptureTest);

};


#endif /* CaptureTest_hpp */


#include "CaptureTest.hpp"

Scene* CaptureTest::createScene()

{

    auto scene = Scene::create();

    auto layer = CaptureTest::create();

    scene->addChild(layer);

    return  scene;

}

bool CaptureTest::init()

{

    if (!Layer::init()) {

        return false;

    }

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

    auto bg = Sprite::create("bg1.png");

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

    this->addChild(bg);

    

    auto captureBtn = Button::create();

    captureBtn->setTitleText("Capture");

    captureBtn->setTitleColor(Color3B::YELLOW);

    captureBtn->setTitleFontSize(30);

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

    this->addChild(captureBtn);

    captureBtn->addClickEventListener([=](Ref*sender){

        {

utils::captureScreen在v3.2版本,utils::captureScreen()方法被加入用于保存屏幕截图。

bool   : 捕捉屏幕截图是否成功    afterCaptured :该方法将在捕捉指令后被执行。

 > filename      :截图的名字。
    //                    > 可以只是一个文件名。  像这样ScreenShot.png。
    //                    > 也可以是一个绝对路径。像这样/sdcard/ScreenShot.png。

//captureScreen(const std::function<void(bool, const std::string&)>& afterCaptured, const std::string& filename);

            utils::captureScreen([=](bool succeed,const std::string& outputFile){

                if (succeed)

                {

                    CCLOG("%s", outputFile.c_str());

                    //显示截图

                    Sprite* sp = Sprite::create(outputFile);

                    sp->setPosition(size / 2);

                    this->addChild(sp);

                    sp->setScale(0.25); //放缩

                }

                else

                {

                    CCLOG("Capture screen failed.");

                }

                

            }, "/Users/mac/Desktop/gameScree.png");

        }

    });

    

    

    

    

    return true;

}



猜你喜欢

转载自blog.csdn.net/qq_41939248/article/details/80488092