"AppDelegate.h" 和"AppDelegate.cpp" 分析

来源:互联网 发布:java 函数返回值 泛型 编辑:程序博客网 时间:2024/06/01 10:00

转自  http://blog.163.com/jtyp_2000/blog/static/9910426201310893932976/


这两个文件是Cocos2d-x 游戏的通用入口文件,类似于一般 Windows 工程中主函数所在的文件。

AppDelegate 控制着游戏的生命周期,除去构造函数和析构函数外,共有3 个方法。

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

//初始化游戏引擎控制器CCDirector,以便启动游戏引擎    
CCDirector *pDirector = CCDirector::sharedDirector();    
pDirector->setOpenGLView(&CCEGLView::sharedOpenGLView());    

//启用FPS 显示,当前 FPS 会在游戏的左下角显示。FPS也就是屏幕每秒重绘的次数。即每秒帧速率。在游戏开发阶段,可以方便地确定游戏运行是否流畅。  
pDirector->setDisplayStats(true);


//设置绘制间隔。绘制间隔指的是两次绘制的时间间隔,因此绘制间隔的倒数就是FPS 上限。对于移动设备来说,我们通常都会将FPS 限制在一个适当的范围内。过低的每秒重绘次数会使动画显示出卡顿的现象,而提高每秒重绘次数会导致设备运算量大幅增加,造成更高的能耗。人眼的刷新频率约为60次每秒,因此把 FPS 限定在60是一个较为合理的设置,Cocos2d-x 就把绘制间隔设置为 1/60秒。
pDirector->setAnimationInterval(1.0 / 60);

//最后是最关键的步骤,创建Hello World 场景,然后指派 CCDirector运行这个场景。对于游戏开发者而言,我们需要在此处来对我们的游戏进行其他必要的初始化,例如读取游戏设置、初始化随机数列表等。程序的最末端返回true,表示程序已经正常初始化。
CCScene *pScene = HelloWorld::scene();    
pDirector->runWithScene(pScene); 

void applicationDidEnterBackground()。当应用程序将要进入后台时,会调用这个方法。具体来说,当用户把程序切换到后台,或手机接到电话或短信后程序被系统切换到后台时,会调用这个方法。此时,应该暂停游戏中正在播放的音乐或音效。动作激烈的游戏通常也应该在此时进行暂停操作,以便玩家暂时离开游戏时不会遭受重大损失。

void applicationWillEnterForeground() 。该方法与applicationDidEnterBackground() 成对出现,在应用程序回到前台时被调用。相对地,我们通常在这里继续播放刚才暂停的音乐,显示游戏暂停菜单等。 

0 0
原创粉丝点击