cocos2dx HelloWorld 分析
cocos2dx Helloworld 导入Android Studio 目录如下:
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()方法。