《Cocos2D x權威指南》 3 2 導演類

2021-09-23 09:45:25 字數 2239 閱讀 2981

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 代...