cocos2d-x RenderTexture


轉自:http://blog.csdn.net/bill_man/article/details/7250911

1.CCRenderTexture

使用CCRenderTexture的過程總結起來一句話,就是首先用begin方法來開始整個控制,采用節點中(比如CCSprite)的visit方法加入到渲染,最后調用end方法來結束整個控制並渲染。

來看一個使用的例子

//定義一個CCRenderTexture,參數為寬高
m_pTarget = CCRenderTexture::renderTextureWithWidthAndHeight(s.width, s.height);

//然后他也必須像節點一樣放入到場景或層中
this->addChild(m_pTarget, -1);

//然后在需要處理渲染管理時開始
m_pTarget->begin();

//然后需要渲染的對象調用vist,但是此時還不渲染
m_pBrush->visit();

//在所有的visit結束后我們再調用CCRenderTexture的end進行真正的畫
m_pTarget->end();

//還有一些CCRenderTexture的功能供我們使用,比如清除屏幕中的渲染,如同java的setClip
m_pTarget->clear(CCRANDOM_0_1(), CCRANDOM_0_1(), CCRANDOM_0_1(), CCRANDOM_0_1());//四個參數為我們清屏的顏色的argb值

//另外一個功能就是存儲我們的渲染的圖片
m_pTarget->saveBuffer(str,kCCImageFormatPNG);//第一個參數是文件的路徑,第二個參數分別是JPG(0)或者PNG(1)

2.獲得貼圖數和大小

CCTextureCache::sharedTextureCache()->dumpCachedTextureInfo();
//可以在控制台中顯示貼圖數和大小(這里首先我們要把引擎中dumpCachedTextureInfo使用的CCLOG改為CCLog,就可以了)控制台中就顯示cocos2d: CCTextureCache dumpDebugInfo: 10 textures, for 308 KB (0.30 MB),就可以獲得內存中的貼圖數和大小信息。

3.提前載入貼圖

在很多游戲中,控制圖片的載入和釋放,可以使我們的游戲更加流暢,我們使用如下的方法載入圖片並且回調load函數,在屏幕上顯示載入進度

CCTextureCache::sharedTextureCache()->addImageAsync("Images/HelloWorld.png", this, callfuncO_selector(TextureCacheTest::loadingCallBack));

這樣我們再在游戲中使用這張圖片的時候就可以更快的獲得,整個的使用方法和更新載入進度信息的函數如下


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM