Cocoa學(xué)習(xí)筆記Cocoa2d基礎(chǔ)學(xué)習(xí) 初學(xué)者必看
Cocoa學(xué)習(xí)筆記Cocoa2d基礎(chǔ)學(xué)習(xí)是本文要介紹的內(nèi)容,編程人員應(yīng)該對(duì)游戲開(kāi)發(fā)應(yīng)該是由衷的熱愛(ài),那么本文可以幫你解決一些問(wèn)題。如果你是初學(xué)者,本人覺(jué)得你有必要閱讀一番。不多說(shuō),來(lái)看詳細(xì)內(nèi)容。
cocoa2d基礎(chǔ)
游戲引擎:
一、場(chǎng)景CCScene
1.展示類場(chǎng)景 2. 選項(xiàng)類場(chǎng)景 3.游戲場(chǎng)景
每個(gè)場(chǎng)景都是通過(guò)不同的層(layer)的疊加和組和來(lái)實(shí)現(xiàn) 不同的功能的。因此,通常生個(gè)場(chǎng)景都是有一個(gè)或者幾個(gè)層組成的。
二、層CCLayer
層是我們寫游戲的重點(diǎn),我們大約99%以上的時(shí)間是在層上實(shí)現(xiàn)我們的游戲內(nèi)容。
eg:一個(gè)游戲主菜單畫面是由3個(gè)層疊加實(shí)現(xiàn)的:Background layer Animation layer Menu layer
為了讓不同的層可以組合產(chǎn)生統(tǒng)一的效果,這些層基本上都是透明或者半透明的,層的疊加有順序的,如同事件響應(yīng)機(jī)制。
Cocoa2d從技術(shù)實(shí)現(xiàn)角度提供一些公用層:處理菜單的菜單層(Menu),處理顏色的顏色層(ColorLayer)等.
每一層又可以包含很多各式各樣的內(nèi)容要素:文本(Label) 鏈接(HTMLLabel) 精靈(Sprite) 地圖等。
三、精靈 CCSprite
精靈是整個(gè)游戲開(kāi)發(fā)處理的主要對(duì)象,地方的飛機(jī)。坦克是系統(tǒng)AI控制的精靈,代表玩家控制的我方飛機(jī)也是精靈。甚至隨機(jī)飛過(guò)的一片云,一只鳥(niǎo)都是精靈。
特點(diǎn):位置移動(dòng) 旋轉(zhuǎn) 放大縮小 運(yùn)動(dòng)
四、導(dǎo)演 CCDirector
精靈不應(yīng)該依賴層,層不應(yīng)該依賴場(chǎng)景,場(chǎng)景不應(yīng)該依賴流程。
導(dǎo)演代表流程,負(fù)責(zé)游戲全過(guò)程的場(chǎng)景切換,接受層對(duì)象/場(chǎng)景的要求,按照預(yù)先設(shè)計(jì)好的流程來(lái)終止,壓橈,激活當(dāng)前場(chǎng)景,引導(dǎo)下一個(gè)場(chǎng)景。但導(dǎo)演通常只有一個(gè),這個(gè)是間例(singleton).Coco2D框架已經(jīng)預(yù)定義了該實(shí)例,不需創(chuàng)建,直接使用即可。
任何時(shí)間,只有一個(gè)Scene對(duì)象實(shí)例處于運(yùn)行激活狀態(tài),該對(duì)象可以作為當(dāng)前游戲內(nèi)容的對(duì)象的整體包容對(duì)象,對(duì)于Menu(菜單對(duì)象,繼承Layer對(duì)象),通常屬于當(dāng)前場(chǎng)景的主層。
Cocos2D-iPhone的實(shí)現(xiàn)類
CCDirector
負(fù)責(zé)創(chuàng)建,管理應(yīng)用程序、游戲的主窗口,在特定的條件下顯示執(zhí)行某個(gè)場(chǎng)景。
設(shè)置主程序窗口顯示屬性。
管理,顯示場(chǎng)景。
Director 對(duì)象管理場(chǎng)景的方法主要有以下幾個(gè):
1. 主程序啟勱,顯示***個(gè)場(chǎng)景的方法:(void) runWithScene:(Scene*) scene ;
2. 掛起當(dāng)前當(dāng)前正在運(yùn)行的場(chǎng)景并壓棧到代執(zhí)行場(chǎng)景隊(duì)列。將傳入場(chǎng)景設(shè)置為當(dāng)前執(zhí)行場(chǎng)景:(void) pushScene:(Scene*) scene;
3. 執(zhí)行代執(zhí)行場(chǎng)景隊(duì)列中的***一個(gè)場(chǎng)景,當(dāng)前場(chǎng)景被釋放:(void) popScene;
當(dāng)代執(zhí)行隊(duì)列中沒(méi)有代執(zhí)行場(chǎng)景時(shí),系統(tǒng)自勱退出,調(diào)用end 方法。
4. 直接用一個(gè)場(chǎng)景取代當(dāng)前執(zhí)行場(chǎng)景,釋放當(dāng)前場(chǎng)景:(void) replaceScene:(Scene*) scene;返個(gè)凼數(shù)是經(jīng)常使用的。
5. 結(jié)束場(chǎng)景運(yùn)行:(void) end;
6. 暫停場(chǎng)景運(yùn)行:(void) pause;畫面迓存在,時(shí)間任務(wù)停止。
7. 恢復(fù)場(chǎng)景運(yùn)行:-(void) resume;
CCScene
當(dāng)前版本基本上沒(méi)有附加任何特殊功能,基本上可以看成是層Layer對(duì)象的一個(gè)容器。
CCLayer
功能:接收iPone上的屏幕觸摸touch操作輸入
接收動(dòng)力感知輸入
直接提供了以下三個(gè)層:
ColorLayer顏色層(可以通過(guò)setContentSize設(shè)置層大小,改變顏色塊的尺寸)
Menu菜單層(實(shí)例必須是MenueItem類或者子類的實(shí)例)
MultiplexLayer復(fù)合層 可以包含多個(gè)層的復(fù)合層。
CCSprite
一個(gè)獨(dú)立的圖像塊,通常情況它是運(yùn)動(dòng)的(Action):移動(dòng) 旋轉(zhuǎn) 放大縮小 等效果。
我們可以設(shè)置Sprite的屬性讓它運(yùn)動(dòng),也可以通過(guò)動(dòng)作Action來(lái)達(dá)到同樣的目的。(95%內(nèi)容是精靈實(shí)現(xiàn)模擬)
1.緩存圖像內(nèi)容,減少相同內(nèi)容文件的讀取次數(shù)
2.批量提交繪畫,減少OpenGL函數(shù)的調(diào)用次數(shù)。
迓有一個(gè)叫CCSpriteFrameCache 類。該類用亍管理勱畫效果的全部幀圖像,該類直 接提供針對(duì)一個(gè)簡(jiǎn)單的圖像處理工具 http://zwoptex.zwopple.com/輸出文件支持。
小結(jié):Cocoa學(xué)習(xí)筆記Cocoa2d基礎(chǔ)學(xué)習(xí) 初學(xué)者必看的內(nèi)容介紹完了,希望本文對(duì)你有所幫助!如果對(duì)游戲開(kāi)發(fā)感興趣的友們,請(qǐng)參考編輯推薦。