voidCaptureScreenTest::onCaptured(Ref*)
{
Director::getInstance()->getTextureCache()->removeTextureForKey(_filename);
removeChildByTag(childTag);
_filename="CaptureScreenTest.png";
utils::captureScreen(CC_CALLBACK_2(CaptureScreenTest::afterCaptured,this),_filename);
}
voidCaptureScreenTest::afterCaptured(boolsucceed,conststd::string& outputFile)
{
if(succeed)
{
autosp =Sprite::create(outputFile);
addChild(sp,0,childTag);
Sizes =Director::getInstance()->getWinSize();
sp->setPosition(s.width/2, s.height/2);
sp->setScale(0.25);
_filename= outputFile;
}
else
{
log("Capture screen failed.");
}
}
上面是Cocos引擎中C++的截屏实现方法
在display.lua 源文件中有这个接口 直接调用就可以实现截屏了
--------------------------------
-- 截屏并保存为一个文件
-- @function [parent=#display] captureScreen
-- @param function callback 截屏的回调函数
-- @param string fileName 保存的文件, 绝对路径就直接保存, 只有文件名会保存在writePath下
截屏:
display.captureScreen(
function (bSuc, filePath)
--bSuc 截屏是否成功
--filePath 文件保存所在的绝对路径
end, "screen.png")