前言
接觸游戲開發(fā)時間不長,之前一直都是寫Lua,寫Lua肯定是沒有什么發(fā)展的啦,至少你要會寫的。寫客戶端,肯定要看看Cocos2d-x了。從今天起,正式開始Cocos2d-X的學習之旅。
之前一直都是做C++開發(fā)的,轉過來看Cocos2d-x,從語言上來說,沒有多少問題。對于我來說,Cocos2d-x就是一個類庫,就類似于MFC、ATL和QT一樣,就是一個游戲類庫,而我就按照學習類庫使用的方法去學習Cocos2d-x。這篇文章叫基礎概念,但是還是從整體來說說Cocos2d-x這個類庫的。
基礎架構
在Cocos2d-x中,主要的概念包括Director、Scene、Layer和Sprite這幾個重要的概念,它們之間的關系如下。
這幅結構圖是非常重要的,在以后的開發(fā)過程中,基本也就是基于這個結構圖來理清項目結構了。Cocos2d-x就是這樣的管理著不同的對象,然后組成一個個完美的、月流水上億的項目,有些事情就是這樣。
Director(導演)
Director控制著整個游戲,會經(jīng)常進行一些調(diào)度控制;在Cocos2d-x 3.x中,Director使用的是單例模式,在整個游戲運行期間,它就只有一個實例。Director是整個Cocos2d-x 3.x的核心,是整個游戲的導航儀,在游戲中,一般由Director來完成以下操作的控制:
1.OpenGL ES的初始化;
2.場景的轉換;
3.游戲的暫停、繼續(xù)的控制;
4.世界坐標和GL坐標之間的切換;
5.對節(jié)點的控制;
6.保存和調(diào)用保存的游戲數(shù)據(jù);
7.屏幕尺寸的獲取,等等。
Scene(場景)
Scene場景是Cocos2d-x 3.x中必不可少的元素,游戲中我們需要構建不同的場景(至少一個),游戲里關卡、板塊的切換就是一個個場景之間的切換。場景的一個重要的作用就是流程控制的作用,我們可以通過Director的一系列方法控制游戲中不同的場景的自由切換。同時場景是層的容器,包含了所有需要顯示的游戲元素。通常,當我們需要完成一個場景的時候,會創(chuàng)建一個Scene的子類,并在子類中實現(xiàn)我們需要的功能。比如:我們可以在子類的初始化中載入游戲資源,為場景添加層,啟動音樂播放等等。
Layer(層)
Layer是處理玩家事件響應的Node子類。與場景不同,層通常包含的是直接在屏幕上呈現(xiàn)的內(nèi)容,并且可以接受用戶的輸入事件,包括觸摸、鍵盤輸入等。我們需要在層中加入Sprite(精靈)、文本標簽或者其它游戲元素,并設置游戲元素的屬性,比如位置、方向和大小;設置游戲元素的動作等。在我們設計好層以后,只需要把層按照順序添加到場景中就可以顯示出來了。
Sprite(精靈)
Cocos2d-x 3.x中的精靈和其它游戲引擎中的精靈是類似的,它可以移動、旋轉、縮放、執(zhí)行動畫,并接受其它轉換。Cocos2d-x 3.x中的Sprite由Texure、Frame和Animation組成,由OpenGL ES負責渲染。在后續(xù)的學習過程中,我還會繼續(xù)總結關于Sprite的各種知識。
總結
這篇文章只是學習Cocos2d-x 3.x的開始,我并沒有貼上任何的代碼,作為新手來說,貼再多的代碼也是徒勞,看不懂啊。所以,還是先整體了解一下Cocos2d-x的整體結構,這樣,在日后的學習中,思路會更清晰一些。無論如何,請記住基礎架構那一節(jié)中的樹形結構圖。
Cocos2d-x學習的入門門檻很低,以至于誰都可以進入Cocos2d-x開發(fā)的世界,如何在眾多開發(fā)者中保證自己的優(yōu)勢,在后續(xù)的學習過程中,我們不僅要會用Cocos2d-x干活,同時也要知道Cocos2d-x是怎么干的活。
知其然,也要知其所以然。
新聞熱點
疑難解答
圖片精選