本章將介紹cocos2d游戲引擎中最基本的一些構(gòu)成要素。在今后,你會(huì)經(jīng)常使用這些類。所以,了解哪些類是可用的,并理解它們之間的協(xié)作方式,將有助于你編寫出更出色的游戲。有了這些知識(shí)作為基礎(chǔ),你會(huì)發(fā)現(xiàn)用cocos2d編寫游戲比想象中簡(jiǎn)單得多。
本章附帶一個(gè)名為Essentials的Xcode項(xiàng)目,其中包含了在此討論的所有內(nèi)容以及一些額外的示例。源代碼中添加了大量的注釋,你可以把它們當(dāng)作本書附錄來(lái)閱讀。
本章將首先對(duì)cocos2d游戲引擎的架構(gòu)進(jìn)行高度概括。由于在不同游戲引擎中,游戲?qū)ο蟮墓芾矸绞揭约霸谄聊簧系娘@現(xiàn)方式各不相同,因此最好先對(duì)cocos2d中每個(gè)構(gòu)成元素的意義以及它們的組合方式有所理解。
3.1 cocos2d中的單件類
cocos2d充分利用了Singleton設(shè)計(jì)模式。鑒于它常常成為開(kāi)發(fā)者熱議的話題,所以我想有必要在此提一下。從理論上講,單件(Singleton)就是一個(gè)普通的類,但它在應(yīng)用程序的整個(gè)生命周期中只被實(shí)例化一次。為了確保這一點(diǎn),cocos2d采用靜態(tài)方法來(lái)創(chuàng)建并訪問(wèn)這個(gè)對(duì)象實(shí)例。所以,要訪問(wèn)單件對(duì)象,不應(yīng)使用alloc/init或靜態(tài)的自動(dòng)釋放初始化器,而應(yīng)該調(diào)用以shared開(kāi)頭的方法。下面列舉cocos2d中一些最常用的單件類以及訪問(wèn)它們的方法:
CCActionManager* sharedManager = [CCActionManager sharedManager];
CCDirector* sharedDirector = [CCDirector sharedDirector];
CCSpriteFrameCache* sharedCache = [CCSpriteFrameCache
sharedSpriteFrameCache];
CCTextureCache* sharedTexCache = [CCTextureCache sharedTextureCache];
CCTouchDispatcher* sharedDispatcher = [CCTouchDispatcher
sharedDispatcher];
CDAudioManager* sharedManager = [CDAudioManager sharedManager];
SimpleAudioEngine* sharedEngine = [SimpleAudioEngine sharedEngine];