Cocos2d-x 3.0学习笔记(1).引擎的入口和结束

本人纯菜鸟,C++略知一二 JAVA什么的都不懂 。博文自是自己对coco的理解。如有错误请帮忙指正 不胜感激!

之前没有接触过COCOS2DX 2.X版本

直接学习的是3.0beta2版本。


每个平台的入口点都不一样。但是进入程序后,首先执行的是

AppDelegate 类的applicationDidFinishLaunching()函数

AppDelgate类继承自cocos2d::Application

class  AppDelegate : private cocos2d::Application

采用private继承方式主要是隐藏一些不必要的接口防止Director 类错误使用。当然我们也可以自定义一个类替代AppDelegate。不过没有必要除非装装B什么的。


在这个函数内执行对导演类(Director)和视窗类(eglView)的初始化.

这两个类都是单例对象。

bool AppDelegate::applicationDidFinishLaunching() {
    // initialize director 初始化导演雷 和视窗类,因为这两个类都是单例。构造函数不是公开的。
    auto director = Director::getInstance();
    auto eglView = EGLView::getInstance();
    //将导演和视窗关联以便显示
    director->setOpenGLView(eglView);
	
    // turn on display FPS 显示FPS值 默认是关的!
    director->setDisplayStats(true);

    // set FPS. the default value is 1.0/60 if you don't call this 设置FPS值默认为1.0/60 
    director->setAnimationInterval(1.0 / 60);

    // create a scene. it's an autorelease object。建立一个场景该场景具体在其他文件定义
    auto scene = HelloWorld::createScene();

    // run 导演选择这个场景进行显示。
    director->runWithScene(scene);
    return true;
   //这代码里使用了C++ 11 auto关键字 自动推导类型。 关于为什么返回true我也不太明白。反正helloworld的例子就是这样。
}

从这行代码可以理解到:首先要初始化导演和视窗。然后建立一个场景 让导演显示这个场景。 接着程序的运行流程进入运行场景的逻辑。直到程序结束

发布了21 篇原创文章 · 获赞 3 · 访问量 7万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章