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