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的例子就是这样。 }
从这行代码可以理解到:首先要初始化导演和视窗。然后建立一个场景 让导演显示这个场景。 接着程序的运行流程进入运行场景的逻辑。直到程序结束