小滿(bill man)個人原創,歡迎轉載,轉載請注明地址,小滿(bill man)的專欄地址http://blog.csdn.net/bill_man
1.CCRenderTexture
在j2me的手游寫法中,我們一般是開一個線程,這個線程每幀更新渲染,再走一遍邏輯,在cocos2d-x中我們可以使用schduler來進行更新邏輯,這一部分之前已經說過。我們也可以控制渲染的部分,就是通過CCRenderTexture,通過CCRenderTexture可以實現更好的效果,這些效果我會在之后的cocos2d-x開發實例專題中有所體現。本部分的博客還是更多的體現test例子
使用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));
~~~
這樣我們再在游戲中使用這張圖片的時候就可以更快的獲得,整個的使用方法和更新載入進度信息的函數如下

剛開始研究此引擎,如有錯誤之處,希望大家多多指正
下一篇寫一下存檔
- 前言
- (1)--HelloWorld
- (2)--重要概念及Test例子結構
- (3)--動作(CCAction)
- (4)--觸屏事件
- (5)--動作管理
- (6)--場景間切換效果
- (7)--CCProgressTimer
- (8)--場景特效
- (9)--粒子系統
- (10)--運動中的加速度效果
- (11)--拖動間隱效果
- (12)--圖形繪制
- (13)--內存回收機制
- (14)--菜單項
- (15)--CCOrbitCamera
- (16)--LayerColor
- (17)--瓦片地圖集
- (18)--Lable
- (19)--物理引擎box2d(1)
- (20)--物理引擎box2d(2)
- (21)--精靈類
- (22)--動畫類
- (23)--其他(屏幕旋轉,schedule,系統語言)
- (24)--音樂音效
- (25)--CCRenderTexture
- (26)--其他(游戲存檔,切換高清,圖片處理)
- (27)--CCMutableArray
- (28)--CCTMXTiledMap
- (29)-cocosBuilder
- (30)2.1新特性之CCClippingNode
- (31)2.1新特性CCPhysicsSprite
- (32)-cocos2d-x & javascript跨平臺初體驗