首页 > 代码库 > cocos2dx 启动过程详解一:渲染
cocos2dx 启动过程详解一:渲染
今天来看一下cocos2d-x的整体启动过程:
cocos2d-x 在各个平台的实现代码是一样的,只要针对不同平台做相应的配置就可以了。
一、启动前奏
现在来看一下在ios平台下的相关结构:
打开源代码自带工程,你会看到一个main文件,这里main里面有一个main函数,这是程序的入口函数。在这里他回加载AppController,进入这个类,这里有ios平台华景初始化代码,但是最先执行的如下:
// cocos2d application instance
static AppDelegate s_sharedApplication;
static AppDelegate s_sharedApplication;
在这里cocos2dx创建了一个appDelegare的对象,当然在创建的过程中会进行相应的初始化,通过代码可以看到:
/**
@brief The cocos2d Application.
@brief The cocos2d Application.
The reason to implement with private inheritance is to hide some interface details of CCDirector.
*/
class AppDelegate : private cocos2d::CCApplication
在这里就会调用CCApplicaiton的构造函数:
CCApplication::CCApplication()
{
CC_ASSERT(! sm_pSharedApplication);
sm_pSharedApplication = this; //全局共享实例对象
}
{
CC_ASSERT(! sm_pSharedApplication);
sm_pSharedApplication = this; //全局共享实例对象
}
在这里,将this赋值给了sm_pSharedApplication, 这个this是什么? 实际上this是AppDeletegate, 因为 在这里的调用过程中并没有涉及到父类的对象,如果要涉及应该CCApplication::CCApplication(); 我们c++在 创建派生类对象的事后不会创建父类对象,他只会显示或者隐式的调用父类的构造函数。
但是这里为什么会有一个没有用到的全局变量呢? 答案在后面:
点击 继续阅读更多精彩内容
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。