现在的位置: 首页 > 综合 > 正文

COCOS2D-X 的启动流程

2018年04月19日 ⁄ 综合 ⁄ 共 1151字 ⁄ 字号 评论关闭

首先,在main.cpp中会先执行
 AppDelegate app;
   CCEGLView* eglView = CCEGLView::sharedOpenGLView();
   //设置窗口名
   eglView->setViewName("Hoooooo");
   //设置窗口大小
   eglView->setFrameSize(480, 320);
   int ret = CCApplication::sharedApplication()->run();

随后运行
bool AppDelegate::applicationDidFinishLaunching()
{
   //初始化设置导演
   CCDirector *pDirector = CCDirector::sharedDirector();
   pDirector->setOpenGLView(CCEGLView::sharedOpenGLView());

   //开启FPS模式
   pDirector->setDisplayStats(true);

   //设置FPS. 默认是60帧
   pDirector->setAnimationInterval(1.0 / 60);

   //创建一个场景 把HelloWorld的场景指针指向来
   /
   //    在类HelloWorldScene.h中 HelloWorld 写了 static cocos2d::CCScene* scene();用于来   得到场景指针。
   //
   //    HelloWorld本身继承了cocos2d::CCLayer 在 HelloWorldScene.cpp的   HelloWorld::scene()的实现中,HelloWorld本身就添加到场景中通过: 
   //    HelloWorld *layer = HelloWorld::create();
   //    scene->addChild(layer);
   //
   //    其中layer是一个自动释放的对象,原因在于HelloWorld::create();就在是   CREATE_FUNC(HelloWorld);中定义的.
   //    宏CREATE_FUNC(__TYPE__)会设置其自动释放内存,方便内存管理,不需要手动去释放
   //
   /
   CCScene *pScene = HelloWorld::scene();
 
   //导演运行这个场景
   pDirector->runWithScene(pScene);
   return true;
}

下来的添加操作就是在HelloWorld的这个layer图层中进行的了。

在各个平台上面都是这样,比如android,是通过在一个activity(继承自cocos2dactivity),中开始进入c接口,然后开始通过代理加载。

抱歉!评论已关闭.