ccdirector類是cocos2d-x遊戲引擎的核心,它用來建立並且控制著主螢幕的顯示,同時控制場景的顯示時間和顯示方式。在整個遊戲裡一般只有乙個導演。遊戲的開始、結束、暫停都會呼叫ccdirector類的方法。ccdirector類具有如下功能。
初始化opengl會話。
設定opengl的一些引數和方式。
訪問和改變場景以及訪問cocos2d-x的配置細節。
訪問檢視。
設定投影和朝向。
需要說明的是,ccdirector是單例模式,呼叫ccdirector方法的標準方式如下:
ccdirector::shareddirector()->函式名
ccdirector類的繼承關係如圖3-8所示。
ccdisplaylinkdirector繼承了ccdirector,是乙個可以自動重新整理的導演類。它只支援1/60 、1/30 和1/15三種動畫間隔(幀間隔)。
在cocos2d-x裡面,在遊戲的任何時間,只有乙個場景物件例項處於執行狀態,而導演就是流程的總指揮,它負責遊戲全過程的場景切換,這也是典型的物件導向和分層的設計原則。下面分別介紹ccdirector類的成員資料和函式。
3.2.1 ccdirector類的成員資料
ccdirector類的主要保護成員資料如表3-4所示。
3.2.2 ccdirector類的函式
ccdirector類的主要公共函式如表3-5所示。
在2.0之前的版本中,曾經有設定導演類的函式,有4個導演型別,分別是kccdirectortypenstimer、kccdirectortypemainloop、kccdirectortype-thread mainloop、kccdirectortypedisplaylink。但是在2.0版本以後,這些函式已經成為歷史了。
3.2.3 例項:ccdirector類的使用
由於ccdirector類是乙個控制的類別,從建立專案的模板中,就可以看到ccdirector類在遊戲初始化的應用,如**清單3-6所示。
**清單3-6 ccdirector類在遊戲初始化的應用
// 獲得導演類
ccdirector *pdirector = ccdirector::shareddirector();
//設定opengl檢視
pdirector->setopenglview(&cceglview::sharedopenglview());
//設定是否顯示每幀時間
pdirector->setdisplaystats(true);
//設定每幀時間
pdirector->setanimationinterval(1.0 / 60);
//建立場景
ccscene *pscene = helloworld::scene();
//執行場景
pdirector->runwithscene(pscene);
return true;}
ccdirector::shareddirector()->stopanimation();
} ccdirector::shareddirector()->startanimation();
}在手機有外部事件進入時,也會將當前介面暫停,比如來**的時候。
在遊戲結束的時候,同樣需要使用導演類的結束函式,如**清單3-8所示。
**清單3-8 導演類的結束方法
void helloworld::menuclosecallback(ccobject* psender)
從以上例子可以看出,導演類就是乙個管理遊戲的指揮官。之後還會接觸到一些ccdirector類的用法,包括座標的轉換等,這些會在觸控事件那部分做詳細介紹。
Cocos2d x執行win32工程
環境vs2010,cocos2d x 2.1.3 1 隨便找個位置新建cocos2d工程 2 引入包含目錄 工程 右鍵 properties c c general additional include directories 把.classes solutiondir cocos2dx solut...
cocos2d x 資源集合
官網 主席子龍山人 archive 2011 08 08 2131019.html kmyhy的專欄 老g的小屋 cocos2d xtouch事件cocos2d 事件冒泡規律 和 ccmenu一直響應事件的解決辦法 swallow touches how to setmultipletouchena...
cocos2d x 開篇介紹
關於cocos2d x這一遊戲引擎,現在受到了手機遊戲開發者的青睞。其實cocos2d一開始是由於cocos2d iphone的成功,然後帶動各類開源專案越來越火。由蘋果獨家的objective c到了流行的c 支援了更多平台。cocos2d x中的 x 是什麼意識呢,其實其中包含著兩層含義 1 代...