渲染--筆記(2)

CCLayer函數定義:編輯器

遊戲須要不少圖層來實現功能,好比菜單層(CCMenu)、顏色顯示層(CCColorLayer)函數

顏色層用於烘托背景,開發者能夠填充RGB顏色,設置圖層的透明度,移動、閃爍或者漸變。類繼承自CCLayerCCRGBAProtocol(顏色控制)CCBlendProtocol(混合控制)定義以下:性能

CCColorLayer有一個子類CCLayerGradient:顏色漸變效果的顏色圖層,參數是2個顏色,初始色(透明度)和最終色(透明度)字體

CCMenu菜單圖層:動畫

存放CCMenuItem及其子類。spa

CCLayer還有其它子類:UILayerCCControlCCScrollViewCCBProxycode

精靈類(CCSprite)對象

繼承關係:繼承

classCC_DLLCCSprite : publicCCNodeRGBApublicCCTextureProtocol遊戲

classCC_DLLCCNodeRGBA : publicCCNodepublicCCRGBAProtocol

classCC_DLLCCTextureProtocol : publicCCBlendProtocol

繼承CCNode和兩個處理精靈紋理圖片的類(顏色管理和紋理圖片管理),類自有屬性以下:

建立方法以下:

建立紋理對象方法:

CCTextureCache::sharedTextureCache()->addImage(path)

建立精靈幀方法:

集合:CCSpriteBatchNode::create(path,num)

緩衝:CCSpriteFrameCache::sharedSpriteFrameCache()->addSpriteFramesWithFile(path)

精靈對象:CCSprite::createWithSpriteFrameName(path)

集合和緩衝是提高遊戲性能準備的。

 

精靈集合類(CCSpriteBatchNode)

子類:CCLabelBMFont(字體類)CCTMXLayer(地圖背景類)

對應的紋理圖片很豐富,一張圖片包含多種文字和許多圖塊和圖片

 

OpenGLES渲染器的運行原理:把必要的信息傳遞給圖形處理硬件,而後將整個或部分圖片渲染。使用精靈集合類,一個集合中的精靈都使用同一張渲染貼圖,在繪製的時候就不須要頻繁傳遞貼圖信息給圖形硬件,提高效率。一個精靈集合繪製的對象出於同一個畫面層次,紋理大小存在限制(IOS:1024*1024),而且必須是2N次方大小。

精靈集合建立方法:

 

精靈幀緩衝(CCSpriteFrameCache)

存放精靈幀(CCSpriteFrame)對象的緩衝池,CCSpriteFrame直接繼承自CCObject,不是CCNode的子類,不能繪製於加入節點鏈表,做用在於持有一個紋理對象,爲精靈對象提供動畫支持。

精靈幀的屬性:

建立函數:

支持使用紋理建立精靈幀,與建立精靈相似。經過使用精靈幀能夠方便的建立精靈對象不用考慮內存,因此精靈幀緩衝包含了遊戲所用的精靈幀,紋理來自組合的紋理圖片或者是多個單獨的紋理圖片。精靈幀緩衝支持加載多個精靈幀對象,使用plist描述文件,加載方法以下:

plist文件+問題圖片or紋理對象

可使用Zwoptex紋理編輯器製做紋理

一個實例:

二、文字與字體:

Cocoss2dx3個文字處理類:CCLabelAtlasCCLabelBMFontCCLabelTTF(TTF字體)都繼承了CCLabelProtocol協議。以下:

都繼承自CCNodeCCLabelTTF繼承關係:

繼承CCSprite,所以CCTextFieldTTFCCLabelTTF能夠當作精靈對象使用。

CCLabelTTF的建立函數:

參數說明:文字內容,字體名稱,字體尺寸,標籤尺寸,文字水平對齊方式,文字豎直對齊方式

實例能夠參考:samples\Cpp\TestCpp\Classes\FontTest\FontTest.cpp showFont函數

 

BMFont標籤類(CCLabelBMFont)

繼承關係:

繼承自CCSpriteBatchNode(精靈集合),使用自定義文字,開發者能夠自定義字體,

使用BMFont(http://www.angelcode.com/products/bmfont/)編輯器編輯字體圖集。

實例:samples\Cpp\TestCpp\Classes\LabelTest\LabelTest.cpp Atlas3

方法爲:CCLabelBMFont::create(文字內容,字體路徑)

 

Atlas標籤類(CCLabelAtlas)

繼承關係:

繼承自CCNode,與TTF不一樣的是不生成紋理圖片,直接使用源紋理圖片,所以開發人員能夠自定義字體和顯示內容。

建立函數:

參數:文字內容,紋理path,寬度,高度,起始位置

 

三、菜單按鈕:

容器CCMenu,節點CCMenuItem,繼承關係:

實例:samples\Cpp\TestCpp\Classes\MenuTest\MenuTest.cpp MenuLayerMainMenu對象

 

四、幾何繪製(DRawPrimitives)

CCDrawingPrimitives.h/cpp提供的繪製函數:

相關文章
相關標籤/搜索