日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

cocos2dx[3.2](18)——屏幕截图ScreenShot

發(fā)布時(shí)間:2025/3/21 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 cocos2dx[3.2](18)——屏幕截图ScreenShot 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

【嘮叨】

????屏幕截圖有兩種方式:

????(1)使用RenderTexture ? ? ? ? ?:這是在2.x版本時(shí)最常用的的截圖方法。

????(2)使用utils::captureScreen() :在3.2版本中新增的截圖方法。


【致謝】

????http://blog.csdn.net/ganpengjin1/article/details/19088921

????http://cn.cocos2d-x.org/article/index?type=wiki&url=/doc/cocos-docs-master/manual/framework/native/wiki/how-to-save-a-screenshot/zh.md




【RenderTexture】

????RenderTexture這個(gè)動(dòng)態(tài)紋理類,顧名思義就是可以動(dòng)態(tài)創(chuàng)建紋理圖片。

????屏幕截圖主要步驟:

????????> 開始截圖:render->begin();

????????> 遍歷場景:scene->visit();

????????> 結(jié)束截圖:render->end();

????????> 保存截圖:render->saveToFile(string& filename, Image::Format format);

????其中Image::Format為圖片格式,可以保存為PNG、或JPG兩種格式。

????即:Image::Format::PNGImage::Format::JPG


1、截圖方法

// void?HelloWorld::capture(Ref*?sender) {CCLOG("ScreenShot");//獲取屏幕尺寸大小Size?winSize?=?CCDirector::sharedDirector()->getWinSize();//創(chuàng)建RenderTexture,紋理圖片大小為窗口大小winSizeRenderTexture*?screen?=?RenderTexture::create(winSize.width,?winSize.height);//屏幕截圖screen->begin();????????????//開始抓屏this->getParent()->visit();?//遍歷當(dāng)前場景Scene的所有子節(jié)點(diǎn)信息,畫入screen中screen->end();??????????????//結(jié)束抓屏//保存截圖screen->saveToFile("ScreenShot.png",?Image::Format::PNG);?//保存為PNG格式//screen->saveToFile("ScreenShot.jpg",?Image::Format::JPG);?//保存為JPG格式 } //


2、保存路徑

????> Win32 ?:保存在?Debug.win32/?目錄下。

????>?Android:保存在 /data/data/com.summer.hello/files/ScreenShot.png?。




【utils::captureScreen】

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

????

1、定義

////?>?afterCaptured?:該方法將在捕捉指令后被執(zhí)行。//????????????????????>?bool???:?捕捉屏幕截圖是否成功。//????????????????????>?string?:?截圖存儲(chǔ)的路徑。//?>?filename??????:截圖的名字。//????????????????????>?可以只是一個(gè)文件名。??像這樣ScreenShot.png。//????????????????????>?也可以是一個(gè)絕對(duì)路徑。像這樣/sdcard/ScreenShot.png。void?captureScreen(const?std::function<void(bool,?const?std::string&)>&?afterCaptured,?const?std::string&?filename) //


2、截圖方法

// //屏幕截圖 void?HelloWorld::capture(Ref*?sender) {CCLOG("ScreenShot");utils::captureScreen(CC_CALLBACK_2(HelloWorld::afterCapture,?this),?"ScreenShot.png"); }//截圖后執(zhí)行afterCapture void?HelloWorld::afterCapture(bool?succeed,?const?std::string&?outputFile) {if?(succeed){CCLOG("%s",?outputFile.c_str());//顯示截圖Sprite*?sp?=?Sprite::create(outputFile);sp->setPosition(winSize?/?2);this->addChild(sp);sp->setScale(0.25);?//放縮}else{CCLOG("Capture?screen?failed.");} } //


3、保存路徑

????filename可以只是一個(gè)文件名(保存到相對(duì)路徑):像這樣 "ScreenShot.png"

????filename也可以是一個(gè)絕對(duì)路徑 ? ? ? ? ? ? ? ?:像這樣 "/sdcard/ScreenShot.png"



轉(zhuǎn)載于:https://blog.51cto.com/shahdza/1560906

總結(jié)

以上是生活随笔為你收集整理的cocos2dx[3.2](18)——屏幕截图ScreenShot的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。