您的位置:首页 > 移动开发 > Cocos引擎

Cocos2dx 截屏功能 3.2以上版本

2016-07-25 17:53 513 查看
本文转载:http://www.areskill.com/?p=356

Cocos2d-x 截屏 3.2以上版本

使用utils::captureScreen 截屏,然后回调

auto listener = EventListenerTouchOneByOne::create();
listener->onTouchBegan = [this](Touch *touch, Event *event){
capture(nullptr);
return false;
};
Director::getInstance()->getEventDispatcher()->addEventListenerWithSceneGraphPriority(listener, this);

//屏幕截图
void HelloWorld::capture(Ref* sender) {
log("ScreenShot");
utils::captureScreen(CC_CALLBACK_2(HelloWorld::afterCapture, this), "ScreenShot.png");
}

//截图后执行afterCapture
void HelloWorld::afterCapture(bool succeed, const std::string& outputFile) {
if (succeed) {
log("%s", outputFile.c_str());
//显示截图
Sprite* sp = Sprite::create(outputFile);
Size visibleSize = Director::getInstance()->getVisibleSize();
Vec2 origin = Director::getInstance()->getVisibleOrigin();

sp->setPosition(Vec2(visibleSize.width/2+origin.x, visibleSize.height/2+origin.y));
this->addChild(sp);
sp->setScale(0.5); //放缩
}
else {
log("Capture screen failed.");
}
}


纹理缓存问题

清除纹理缓存

TextureCache::getInstance()->removeUnusedTextures();


图片

原文地址:http://www.areskill.com/?p=356
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: