3.2 Director類
CCDirector類(簡稱為Director)是整個(gè)cocos2d游戲引擎的核心。如果回想一下在第2章中學(xué)到的HelloWorld程序,就會(huì)想起cocos2d中很多初始化過程都包含了[CCDirectorsharedDirector]這個(gè)調(diào)用。Director被設(shè)計(jì)為單件,這個(gè)設(shè)計(jì)是非常合理的:它存儲(chǔ)了cocos2d中大量的全局配置信息,而且管理著所有的cocos2d場景。
Director的主要用途包括:
n● 切換場景
n● 存儲(chǔ)cocos2d配置信息
n● 訪問視圖(OpenGL UIView UIWindow)
n● 暫停、恢復(fù)以及終止游戲
n● 在UIKit和OpenGL之間轉(zhuǎn)換坐標(biāo)
事實(shí)上,一共有4種Director可供選擇,但它們之間只有細(xì)微的差別。最常用的一種是CCDisplayLinkDirector,它的內(nèi)部采用蘋果公司官方的CADisplayLink類來實(shí)現(xiàn)。這是一個(gè)很好的選擇,但它只在iOS 3.1或更高的版本上可用。另一種選擇是,可以使用CCFastDirector。如果想同時(shí)使用cocos2d和Cocoa Touch視圖,就必須使用CCThreadedFastDirector,因?yàn)橹挥兴梢酝瑫r(shí)支持cocos2d和Cocoa Touch視圖。CCThreadedFastDirector的缺點(diǎn)在于耗電量比較大,如果你非常注重這一點(diǎn),那么應(yīng)選用CCTimerDirector。不過,不到萬不得已,最好不要用它,因?yàn)樗撬蠨irector中最慢的一個(gè)。
3.3 場景圖
場景圖有時(shí)也稱為場景層次體系,是一個(gè)由所有處于活動(dòng)狀態(tài)的cocos2d節(jié)點(diǎn)構(gòu)成的層次體系。除了場景以外,每個(gè)節(jié)點(diǎn)只有一個(gè)父節(jié)點(diǎn),同時(shí)可以擁有任意個(gè)數(shù)的子節(jié)點(diǎn)。
當(dāng)向節(jié)點(diǎn)添加節(jié)點(diǎn)時(shí),就是在構(gòu)建一個(gè)節(jié)點(diǎn)場景圖。場景圖的頂層通常是一個(gè)場景節(jié)點(diǎn),接下來是一個(gè)層節(jié)點(diǎn)。層節(jié)點(diǎn)在cocos2d中負(fù)責(zé)接收觸摸輸入和加速計(jì)輸入。