Cocos2d-x學習之 整體框架描述


1.Cocos2d-x 整體描述

和傳統的游戲引擎一樣,cocos2d-x作為一個2d的游戲引擎,其也有以下幾大概念組成:

導演(CCDiretor):

在cocos2d-x引擎中,CCDirector類是整個游戲的組織和控制核心,游戲的運行規則,游戲內的CCScene(場景)、布景(CCLayer)、角色(CCSprite)等的運動,均由CCDirector管理,其在游戲中起着指定游戲規則讓游戲內的場景、布景和任務有序的運行。在整個游戲里面,一般只有一個導演,游戲開始和結束時,都需要調用CCDirector的方法完成游戲初始化或銷毀工作,其提供了一些場景管理的方法,如runWithScene、DrawScene、pushScene和replaceScen等。

它控制FPS的顯示隱藏,窗口大小,游戲的進入,退出,關卡的切換,取得正交模式,取得正在運行的場景,取得GL視圖,游戲主循環入口等等

攝像機(CCCamera) 
    游戲中每個節點都需要攝像機,當節點發生縮放,旋轉和位置變化時,都需要覆蓋攝像機,讓這個節點通過攝像機進行重新渲染。

官方對於攝像機的描述是這樣的:CCCamera應用於每個CCNode中。 在從不同視野觀察時起作用,OpenGL中的gluLookAt函數用來定位攝像機。 假如這個物體通過綻放、旋轉、或者平移,那么這些操作將修改攝像機。 注意:使用攝像機或者操作旋轉、綻放、平移等屬性,你只能選其中一個,假如你使用攝像機,世界坐標就會失去作用。 局限性: 幾種節點,如CCParallaxNode,CCParticle使用世界節點坐標,並且他們並不能正常工作,假如你使用攝像機移動他們(或者他們的任何父類)。 在成批的結點上(即一個結點上包含多個節點)如CCSprite對象不會正常工作當他們都從屬於一個CCSpriteBatchNode對象時。 推薦你只在創建3d特效時使用。對於2d特效來說,用CCFollow動作或者平移、綻放、旋轉更好。
場景(CCScene) 
    在游戲里,場景就是關卡。關卡由人物角色和背景構成。在電影里,場景就是電影中的各種場面,各種場面主要由人物活動和背景等構成。而在Cocos2d-x 引擎中,場景存放的是需要渲染的布景,任務角色和菜單,它可以作為一個整體,一起渲染,一起銷毀,一起被場景切換使用。

即游戲關卡的實施者,其管理這多個CCLayer,進行場景展現,相關業務邏輯的處理等;
布景(CCLayer)
    從概念上說,布景就是場景里的背景。其實就是層次的概念,這種概念在KJava時代就已經存在,就是手動地把游戲中的場景分層(也有靠地圖編輯器實現)。 
每個游戲場景中都可以有很多層,每一層有各自的職責任務,例如專門負責顯示背景,專門負責顯示道具,專門負責顯示任務角色等,在每一層上面可以放置不同的元素,包括文本,精靈和菜單等,通過層與層之間的組合關系,我們可以很容易的控制和顯示各種各樣的界面了,當然,其和photoshop中的層一樣,也有透明之說,所以為了能夠看到每一層上面的東西,很多層都設置為透明或半透明的,否則只能看到最上面的一層了。

一般一個場景可以有很多層,比如背景圖層,物件層,NPC層,角色層,UI層等等,每個層負責自己的功能業務,總的在一個CCScene里共存,隨着場景的隱藏而隱藏;不同的層之間可以通過設置不同alpha通道(透明度)進行顯示控制; 
角色(CCSprite) 
精靈是整個游戲開發處理的主要對象,包括主角和敵人、NPC等,甚至隨機飄過的一片雲或飛鳥從技術上講,也是精靈,因為精靈在cocos2d-x中,就是一個可以不斷變化的圖片,這些變化包括位置變化,旋轉、放大縮小和運動等。 
動作(CCAction)
    角色所具有的動作,一般用於精靈發生動作時使用,如移動,釋放魔法等。

總體來說以上的對象主要關聯如下:

wps_clip_image-18441


免責聲明!

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



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