1三、Cocos2dx 3.0三,找一個小遊戲開發3.0中間Director :郝夢主,一統江湖

重開發人員的勞動成果。轉載的時候請務必註明出處http://blog.csdn.net/haomengzhu/article/details/27706967
設計模式


遊戲中的基本元素app

在曾經文章中,咱們具體介紹了遊戲開發的概念以及 Cocos2d-x 與其它遊戲引擎的不一樣之處。甚至已經學會了它不同凡響的  內存管理機制。
想必你們已經很是期待開始探索 Cocos2d-x 遊戲開發的世界了。

在後面的文章中,咱們將結合詳細的實例,從 Cocos2d-x 遊戲開發的基本元素講起。 
從這章開始,我會在學習引擎的過程當中和你們一步步建立《找小三》這個遊戲;

Director  :郝萌主,一統江湖

從英語字面上理解,這是一個"導演"類,Director 是控制遊戲流程的主要組件。
回想引擎框架本身主動生成的HelloWorld 項目,程序生命週期中游戲載入期的最後一個方法 AppDelegate::applicationDidFinishLaunching,其代碼例如如下所看到的:
bool AppDelegate::applicationDidFinishLaunching() {
    // initialize director//初始化導演類
    auto director = Director::getInstance();
    auto glview = director->getOpenGLView();
    if(!glview) {
        glview = GLView::create(FontChina::G2U("郝萌主之找小三"));
        director->setOpenGLView(glview);
    }

    // turn on display FPS//啓用 FPS 顯示
    director->setDisplayStats(false);

    // set FPS. the default value is 1.0/60 if you don't call this
 //設置 FPS 上限。假設不加設置,則默認 FPS 上限爲 60
    director->setAnimationInterval(1.0 / 60);

    // create a scene. it's an autorelease object
 //建立一個場景,場景是一個 autorelease 對象
    auto scene = HelloWorld::createScene();

    // run
 //執行場景
    director->runWithScene(scene);

    return true;
}

可以看到,事實上Director 的工做確實跟導演的工做很相似,Director 類主要負責下面工做。

 

一、遊戲呈現方面的設定,包含設定遊戲呈現的窗體、FPS 顯示、默認幀率上限、紋理顏色位寬等。
二、切換當前的遊戲場景,暫停或恢復遊戲場景的執行。
總而言之,遊戲在 Director 的管理下完畢了呈現設定與流程控制。

Director 扮演着武林萌主的角色,於是很是天然地採用了單例的設計模式,也就是說整個武林中就這一位。


在整個武林中、、、、哦,不,是在程序的不論什麼地方,都可以經過如下的簡單的代碼訪問到: 
auto director = Director::getInstance();

在 Director 中,還定義了下面管理場景的方法。
runWithScene(Scene* scene):啓動遊戲,並執行 scene 場景。這種方法在主程序啓動時第一次啓動主場景時調用。

replaceScene(Scene* scene):直接使用傳入的 scene 替換當前場景來切換畫面,當前場景將被釋放。這是切換場景時 最常常使用的方法。

pushScene(Scene* scene): 將當前執行中的場景暫停並壓入到代執行場景棧中, 再將傳入的 scene 設置爲當前執行場景。

popScene:釋放當前場景。再從代執行場景棧中彈出棧頂的場景,並將其設置爲當前執行場景。假設棧爲空,則直接結束 應用。與 pushScene 成對使用,可以達到形如由主界面進入設置界面,而後回到主界面的效果。


pause:暫停當前執行場景中的所有計時器和動做,場景仍然會顯示在屏幕上。

resume:恢復當前執行場景中被暫停的計時器和動做。

它與 pause 配合使用。框架


end:結束場景。同一時候退出應用。

值得注意的一點是,以上三種切換場景的方法(replaceScene、pushScene、popScene)均是先將待切換的場景全然載入完  畢後,纔將當前執行的場景釋放掉。
因此,在新場景剛好全然載入完成的瞬間,系統中同一時候存在着兩個場景,這將是對
存的一個考驗。若不注意的話,切換場景可能會形成內存不足。


PS:Director 的不少其它函數使用請查閱:cocos\2d\CCDirector.h


郝萌主友情提示:
遊戲中找到了小三。但是現實中千萬不要去找、、、

版權聲明:本文博客原創文章。博客,未經贊成,不得轉載。函數

相關文章
相關標籤/搜索