cocos2dx HelloWorld 分析

cocos2dx Helloworld 导入Android Studio 目录如下:

cocos2dx HelloWorld 分析

 

Rerources文件夹:

该文件夹主要用于存放游戏中需要的图片,音频和配置等资源文件。

Classes文件夹:

该文件夹用于存放头文件和源代码文件,可以看到默认有AppDelegate.h, AppDelegate.cpp, HelloWorldScene.h, HelloWorldScene.cpp 四个文件。

 

AppDelegate.h 和 AppDelegate.cpp

这两个文件是cocos2dx 游戏的入口文件,cocos2dx来源于Cocos2d-iphone, 代码风格和文件结构都沿袭了Cocos2d-iPhone的使用习惯。

AppDelegate.cpp 控制着游戏的生命周期,除去构造函数和析构函数外,还有三个函数。

virtual bool applicationDidFinishLaunching()。 

应用程序启动后将调用这个方法,默认的实现中已经包含了游戏启动后的必要准备。

virtual void applicationDidEnterBackground();

当应用程序将要进入后台时,会调用这个方法。此时,应该暂停游戏中正在播放的音乐或音效。

virtual void applicationWillEnterForeground();

该方法与applicationDidEnterBackground() 成对出现,在应用程序回到前台时被调用,通常继续播放刚才暂停的音乐。

 

HelloWorldScene.h 和 HelloWorldScene.cpp ,定义了项目中默认的游戏场景,cocos2d的游戏结构可以简单开括为场景,层,精灵。

HelloWorldScene.cpp 方法:

creatScne() 创建了一个场景

inti() 创建一个MenuItemImage 精灵和Label 节点,并将其addChild() 添加到场景中。

 

CREATE_FUNC(HelloWorld) 等同于下列方法:

#define CREATE_FUNC(__TYPE__) \
static __TYPE__* create() \
{ \
    __TYPE__ *pRet = new(std::nothrow) __TYPE__(); \
    if (pRet && pRet->init()) \
    { \
        pRet->autorelease(); \
        return pRet; \
    } \
    else \
    { \
        delete pRet; \
        pRet = nullptr; \
        return nullptr; \
    } \
}

内部会调用init()方法。