本人吊丝一枚,没钱买mac电脑,只能使用Visual Studio2013来开发cocos2d-x项目,当然也可以用eclipse来开发,但是开发与配置步骤要复杂的多,并且很多功能没有其好,也是官方推荐使用的开发工具。具体window环境搭建请参考:http://jingyan.baidu.com/article/358570f67a79bfce4724fc86.html
由于官方发布了cocos2d-x-3.1,本人也比较喜欢新的东西,所以将之前的3.0换成3.1, 配置环境及使用跟3.0差不多,重新执行setup.py更换其环境变量即可,没有看过之前文章的朋友,可以返回上一篇文章查看。
AppDelegate生命周期
AppDelegate是整个程序的入口,AppDelegate 的函数控制着游戏的生命周期,它们分别是:applicationDidFinishLaunching(程序完成初始化),applicationDidEnterBackground(程序进入后台),applicationWillEnterForeground(程序重回前台和程序结束退出)。
首先咱们来分析Cocos2d-x程序的生命周期,进入C:\cocos2d-x-3.1\mydir\MyGame\Classes源码文件中,我们能看到AppDelegate.cpp和AppDelegate.h 两个文件,AppDelegate.h只是定义和包含一些coco2d需要的头文件,咱们只看AppDelegate.cpp
#include "AppDelegate.h"
#include "HelloWorldScene.h"
USING_NS_CC; //命名空间宏
AppDelegate::AppDelegate() {}
AppDelegate::~AppDelegate() {}
bool AppDelegate::applicationDidFinishLaunching() {
// 初始化游戏引擎 director,以便启动引擎
auto director = Director::getInstance();
auto glview = director->getOpenGLView();
if(!glview) {
glview = GLView::create("My Game");
director->setOpenGLView(glview);
}
// 显示FPS值(在游戏开发阶段可以查看游戏是否流畅)
director->setDisplayStats(true);
// 设置FPS (设置绘图间隔,值越高则使得游戏越流畅,默认1/60秒)
director->setAnimationInterval(1.0 / 60);
// 创建一个场景。这是一个自动释放的对象
auto scene = HelloWorld::createScene();
// 启动
director->runWithScene(scene);
return true;
}
// 当应用程序处于非活动状态该函数将被调用,如此时来了通电话时,则会调用
void AppDelegate::applicationDidEnterBackground() {
Director::getInstance()->stopAnimation();
}
// 当应用程序处于活动状态再这个函数会被调用,即再次打开
void AppDelegate::applicationWillEnterForeground() {
Director::getInstance()->startAnimation();
}