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