cocos2d-x版本2.2.5的项目HelloWorld的代码流程走向

cocos2d-x版本2.2.5的项目HelloWorld的代码流程走向,第1张

概述以下为cocos2d-x版本2.2.5的项目HelloWorld的代码流程走向: 一、main.cpp中的_tWinMain为程序入口,其中代码为:     AppDelegate app;     CCEGLView* eglView = CCEGLView::sharedOpenGLView();     eglView->setViewName("helloworld by xing");
@H_404_3@以下为cocos2d-x版本2.2.5的项目HelloWorld的代码流程走向:

@H_404_3@

@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@二、步骤走向:

@[email protected]>创建程序实例---》设置窗体属性---》创建控制器和场景---》将场景置于控制器管理中的场景栈---》启动动画---》显示窗体---》循环消息体(peek消息---》跳到下一场景---》trans消息---》dispatch消息---》peek消息)

总结

以上是内存溢出为你收集整理的cocos2d-x版本2.2.5的项目HelloWorld的代码流程走向全部内容,希望文章能够帮你解决cocos2d-x版本2.2.5的项目HelloWorld的代码流程走向所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1004593.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存