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

 

posted @ 2013-04-25 02:19  Joe Physwf  阅读(3010)  评论(0编辑  收藏  举报