Cocos2d-x入門教程(一)環境搭建與HelloWorld


聲明:本教程的開發環境為Win32,並且目前只在此平台上做開發實驗。平台的選擇只考慮開發的方便,教程的關注點在於平台之上的層面。

為了搭建一個在Windows下的Cocos2d-x開發環境,我們需要:

1.安裝VS(2010或者2012 Desktop),筆者安裝的是VS Express 2012 For Desktop。

2.下載Cocos2d-x源碼庫。Cocos2d-x的Github地址 https://github.com/cocos2d/cocos2d-x,你可以下載zip包解壓,也可以用git/svn檢出,需要提醒的是不要檢出全部,否則你要等好一陣子,只要檢Head Revision就可以了。

3.編譯。拿到源碼后你會發現有cocos2d-win32.vc2010.sln 和 cocos2d-win32.vc2012.sln 兩個解決方案文件,根據你安裝的VS版本,選擇其中一個打開,然后生成解決方案。提醒:時間可能會稍微長點,另外js和lua的兩個項目可能會有錯,因為文件缺失,這個暫時先不管,因為不會影響cpp的開發,后面有需求在解決。

4.設置工作區。找到template文件夾下的msvc文件夾,哪里面有一些腳本,從名字可以看出他們的用途,運行你的VS版本所對應的腳本即可。提示成功安裝之后,你在打開VS,新建項目,在Visual C++選項上你就可以看到多出一個Cocos2d-x-win32 Application項目。至此你的環境已經安裝完成了。

 

下面我們稍微再多走一步。

在VS中選擇文件-〉新建項目-〉Visual C++-〉Cocos2d-x-win32 Application,命名為HelloWord,確定之后你會發現VS已經為我們自動初始化了一個模版。將這個項目設為默認啟動項目,然后執行運行命令,你就會看見一個Cocos2d-x Logo赫然在目。

對這個HelloWord項目你不需要去做別的,只要看懂他如何運行的即可,包括一些類的作用以及初始化順序。

首先是AppDelegate類。這個類繼承了CCApplication,而后者是一個與特定平台進行打交道的類,相當於系統與Cocos2d-x間的一個中間人,它繼承自CCApplicationProtocol,正如其名稱所示,他規定了一個不同平台間子類應該實現的共同接口。而針對每一個平台都可以實現一個CCApplication子類,我們在Win32平台下的CCApplication是針對Win32平台來實現的,你在源碼中還可以找到其他平台的CCApplication類,這里就不再贅述。

因為AppDelegate繼承了CCApplication類,所以當實例化AppDelegate對象時,CCApplication也會被調用,從而初始化一些必要的條件。但AppDelegate的作用不止於此,粗略地看一下AppDelegate的定義:

class  AppDelegate : private cocos2d::CCApplication
{
public:
    AppDelegate();
    virtual ~AppDelegate();

    /**
    @brief    Implement CCDirector and CCScene init code here.
    @return true    Initialize success, app continue.
    @return false   Initialize failed, app terminate.
    */
    virtual bool applicationDidFinishLaunching();

    /**
    @brief  The function be called when the application enter background
    @param  the pointer of the application
    */
    virtual void applicationDidEnterBackground();

    /**
    @brief  The function be called when the application enter foreground
    @param  the pointer of the application
    */
    virtual void applicationWillEnterForeground();
};

他需要實現三個接口(構造函數不算),這些接口的作用從其名稱上可以猜得一二,它們提供了一些契機,讓AppDedegate可以選擇地執行一些操作。

為了更深入的理解它我們需要搞清楚一個Cocos2d項目的初始化過程,見下圖:

讀者可以結合斷點調試來理解這個序列圖。

刨去這個過程的一些細節,我們需要掌握這里面的一個主線,這個主線也是我們理解並運用Cocos2d-x的基礎:

這一主線包括:

1.Application級別初始化。通過AppDelegate到CCApplication到CCApplicationProtocol。

2.openGL級別初始化。通過CCEGLView。

3.Director級別初始化。通過CCDirector,以CCEGLView對象為參數,CCDirector是一個核心控制類,他主導整個View。

4.Scene級別初始化。通過CCDirector來運行整個場景,以及進行場景切換。

Scene級別以上的三個都是單例,而Scene則可以有很多個,事實上Cocos2d游戲的實現邏輯即在於不同Scene間的切換。

 

相關資料均已上傳至Github:https://github.com/Physwf/physwf-c-lab/tree/master/Cocos2d-x%20Tutorial

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM