Cocos2d-x 3.0學習筆記(1).引擎的入口和結束

本人純菜鳥,C++略知一二 JAVA什麼的都不懂 。博文自是自己對coco的理解。如有錯誤請幫忙指正 不勝感激!

之前沒有接觸過COCOS2DX 2.X版本

直接學習的是3.0beta2版本。


每個平臺的入口點都不一樣。但是進入程序後,首先執行的是

AppDelegate 類的applicationDidFinishLaunching()函數

AppDelgate類繼承自cocos2d::Application

class  AppDelegate : private cocos2d::Application

採用private繼承方式主要是隱藏一些不必要的接口防止Director 類錯誤使用。當然我們也可以自定義一個類替代AppDelegate。不過沒有必要除非裝裝B什麼的。


在這個函數內執行對導演類(Director)和視窗類(eglView)的初始化.

這兩個類都是單例對象。

bool AppDelegate::applicationDidFinishLaunching() {
    // initialize director 初始化導演雷 和視窗類,因爲這兩個類都是單例。構造函數不是公開的。
    auto director = Director::getInstance();
    auto eglView = EGLView::getInstance();
    //將導演和視窗關聯以便顯示
    director->setOpenGLView(eglView);
	
    // turn on display FPS 顯示FPS值 默認是關的!
    director->setDisplayStats(true);

    // set FPS. the default value is 1.0/60 if you don't call this 設置FPS值默認爲1.0/60 
    director->setAnimationInterval(1.0 / 60);

    // create a scene. it's an autorelease object。建立一個場景該場景具體在其他文件定義
    auto scene = HelloWorld::createScene();

    // run 導演選擇這個場景進行顯示。
    director->runWithScene(scene);
    return true;
   //這代碼裏使用了C++ 11 auto關鍵字 自動推導類型。 關於爲什麼返回true我也不太明白。反正helloworld的例子就是這樣。
}

從這行代碼可以理解到:首先要初始化導演和視窗。然後建立一個場景 讓導演顯示這個場景。 接着程序的運行流程進入運行場景的邏輯。直到程序結束

發佈了21 篇原創文章 · 獲贊 3 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章