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


閱讀排行
- 1C語(yǔ)言 while語(yǔ)句的用法詳解
- 2java 實(shí)現(xiàn)簡(jiǎn)單圣誕樹的示例代碼(圣誕
- 3利用C語(yǔ)言實(shí)現(xiàn)“百馬百擔(dān)”問題方法
- 4C語(yǔ)言中計(jì)算正弦的相關(guān)函數(shù)總結(jié)
- 5c語(yǔ)言計(jì)算三角形面積代碼
- 6什么是 WSH(腳本宿主)的詳細(xì)解釋
- 7C++ 中隨機(jī)函數(shù)random函數(shù)的使用方法
- 8正則表達(dá)式匹配各種特殊字符
- 9C語(yǔ)言十進(jìn)制轉(zhuǎn)二進(jìn)制代碼實(shí)例
- 10C語(yǔ)言查找數(shù)組里數(shù)字重復(fù)次數(shù)的方法
本欄相關(guān)
- 04-02c語(yǔ)言函數(shù)調(diào)用后清空內(nèi)存 c語(yǔ)言調(diào)用
- 04-02func函數(shù)+在C語(yǔ)言 func函數(shù)在c語(yǔ)言中
- 04-02c語(yǔ)言的正則匹配函數(shù) c語(yǔ)言正則表達(dá)
- 04-02c語(yǔ)言用函數(shù)寫分段 用c語(yǔ)言表示分段
- 04-02c語(yǔ)言中對(duì)數(shù)函數(shù)的表達(dá)式 c語(yǔ)言中對(duì)
- 04-02c語(yǔ)言編寫函數(shù)冒泡排序 c語(yǔ)言冒泡排
- 04-02c語(yǔ)言沒有round函數(shù) round c語(yǔ)言
- 04-02c語(yǔ)言分段函數(shù)怎么求 用c語(yǔ)言求分段
- 04-02C語(yǔ)言中怎么打出三角函數(shù) c語(yǔ)言中怎
- 04-02c語(yǔ)言調(diào)用函數(shù)求fibo C語(yǔ)言調(diào)用函數(shù)求
隨機(jī)閱讀
- 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文
- 01-10C#中split用法實(shí)例總結(jié)
- 08-05dedecms(織夢(mèng))副欄目數(shù)量限制代碼修改
- 08-05織夢(mèng)dedecms什么時(shí)候用欄目交叉功能?
- 01-10使用C語(yǔ)言求解撲克牌的順子及n個(gè)骰子
- 01-10SublimeText編譯C開發(fā)環(huán)境設(shè)置
- 01-11ajax實(shí)現(xiàn)頁(yè)面的局部加載
- 01-10delphi制作wav文件的方法
- 08-05DEDE織夢(mèng)data目錄下的sessions文件夾有什
- 04-02jquery與jsp,用jquery