@H_404_3@@H_404_3@以下为cocos2d-x版本2.2.5的项目HelloWorld的代码流程走向:
@H_404_3@一、main.cpp中的_tWinMain为程序入口,其中代码为:
@H_404_3@ AppDelegate app; @H_404_3@ CCEGLVIEw* eglVIEw = CCEGLVIEw::sharedOpenGLVIEw(); @H_404_3@ eglVIEw->setVIEwname("helloworld by xing"); @H_404_3@ eglVIEw->setFrameSize(480,320); @H_404_3@ return CCApplication::sharedApplication()->run();@H_404_3@1、AppDelegate 继承于CCApplication,CCApplication这个类主要定义消息循环体Message Loop、获取当前程序实例等功能; @H_404_3@2、AppDelegate 代表了cocos2d的应用程序cocos2d Application。定义了函数:applicationDIDFinishLaunching(),该函数主要是负责实现控制器CCDirector和场景CCScene的初始化;applicationDIDEnterBackground(),该函数在程序回到后台运行时被调用;applicationWillEnterForeground(),该函数在程序回到桌面时被调用; @H_404_3@3、sharedOpenGLVIEw()是CCEGLVIEw的一个static方法。CCEGLVIEw是一个窗体类,负责定义、创建窗体和初始化openGL的一些信息。在方法sharedOpenGLVIEw()中实现这些。在CCEGLVIEw中的Create中对定义窗口类、注册和创建窗口对象,步骤跟MFC创建窗口的步骤一致; @H_404_3@4、eglVIEw->setVIEwname("helloworld by xing") 和 eglVIEw->setFrameSize(480,320);是窗体的标题和框架大小属性的设置; @H_404_3@5、方法CCApplication::sharedApplication()返回当前的程序实例指针,即为第一行的app,相当于app->run();Appdelegate类中没有实现run()方法,所以调用父类CCApplication中的run()方法。run()方法很重要,主要有以下几个重要点:
调用applicationDIDFinishLaunching(),该函数的作用:初始化游戏引擎控制器CCDirector和窗体CCEGLVIEw;设置FPS;创建helloworld的scene:CCScene *pScene = HelloWorld::scene(),其中helloWorld继承于cclayer,cclayer是CCNode的子类,负责实现触摸事件控制的协议“touchEventsDelegate protocol”。在方法HelloWorld::scene()中先创建CCScene的对象scene,其中CCScene是CCNode的子类,只是用于抽象的概念,CCScene和CCNode大部分是一样的,区别在于CCScene的锚点默认在于screen的中心,然后创建helloworld类型的layer(该layer是个autorelease的对象),并使用scene->addChild(layer)添加layer,最后返回scene。接着pDirector->runWithScene(pScene);运行返回的scene,在runWithScene中pushScene和开始启动动画startAnimation(); 接下来获取之前已定义的窗体指针或者创建窗体sharedOpenGLVIEw()返回窗体指针,设置窗体在屏幕中的位置和显示该窗体ShowWindow(这几个步骤有点类似MFC的窗体实现流程); 接下来就是一个while(1){}循环,在该循环中:PeekMessage()获取消息存放到信息体结构MSG(类似MFC),获取时间并判断是否到了获取下一帧frame的时间点,如果是就会进行绘图drawScene()和pop出对象;接下来就是TranslateMessage()和dispatchMessage()。@H_404_3@二、步骤走向: @H_404_3@main.cpp----->创建程序实例---》设置窗体属性---》创建控制器和场景---》将场景置于控制器管理中的场景栈---》启动动画---》显示窗体---》循环消息体(peek消息---》跳到下一场景---》trans消息---》dispatch消息---》peek消息) 总结
以上是内存溢出为你收集整理的cocos2d-x版本2.2.5的项目HelloWorld的代码流程走向全部内容,希望文章能够帮你解决cocos2d-x版本2.2.5的项目HelloWorld的代码流程走向所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)