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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

cocos2dx 3.x(屏幕截图的两种方法)

發布時間:2023/12/9 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 cocos2dx 3.x(屏幕截图的两种方法) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

【RenderTexture】

????RenderTexture這個動態紋理類,顧名思義就是可以動態創建紋理圖片。

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

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

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

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

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

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

????即:Image::Format::PNG、Image::Format::JPG

?

?

第一種截圖方法:

1、截圖方法

?

// void HelloWorld::capture(Ref* sender) {CCLOG("ScreenShot");//獲取屏幕尺寸大小Size winSize = CCDirector::sharedDirector()->getWinSize();//創建RenderTexture,紋理圖片大小為窗口大小winSizeRenderTexture* screen = RenderTexture::create(winSize.width, winSize.height);//屏幕截圖screen->begin(); //開始抓屏this->getParent()->visit(); //遍歷當前場景Scene的所有子節點信息,畫入screen中screen->end(); //結束抓屏//保存截圖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 :該方法將在捕捉指令后被執行。// > bool : 捕捉屏幕截圖是否成功。// > string : 截圖存儲的路徑。// > filename :截圖的名字。// > 可以只是一個文件名。 像這樣ScreenShot.png。// > 也可以是一個絕對路徑。像這樣/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"); }//截圖后執行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可以只是一個文件名(保存到相對路徑):像這樣?"ScreenShot.png"。

????filename也可以是一個絕對路徑?? ? ? ? ? ? ? ?:像這樣?"/sdcard/ScreenShot.png"。

?

?

?

轉載于:https://www.cnblogs.com/luorende/p/6063951.html

總結

以上是生活随笔為你收集整理的cocos2dx 3.x(屏幕截图的两种方法)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。