cocos2dx 3.3 helloworld 入门 学习与详解

刚刚开始学习cocos2dx3.3,做一下记录,方便以后回来看。

分析helloworld是怎么初始化director,如何创建场景和显示等。

参考资料:

http://www.2cto.com/kf/20150/370238.html

http://www.cnblogs.com/imhurley/p/3801703.html


1、我的理解,维护整个游戏循环的是:

"AppDelegate.h" 和 "AppDelegate.cpp" 文件
这两个文件是 Cocos2d-x 游戏的通用入口文件,类似于一般 Windows 工程中主函数所在的文件。
大家先看一下整个helloworld的结构图


看不懂没关系,后面我会解释,最后再回来看一下结构图,一目了然。
2、游戏的启动的时候,AppDelegate就像main函数一样,直到游戏结束,AppDelegate才会结束运行。
如图所示,我 AppDelegate流程分成三段来看:
(1)AppDelegate首先初始化director、添加资源之类的东西
(2)然后createScene()创建一个场景类对象
(3) 之后就开始run(),运行这个场景类
3、上面的三个小步骤都是挺容易看懂的,不过我要重点分析的是第二个小步骤,这个scene初始化这一块,scene初始化里面是开发人员主观能动性发挥的地方。
应该大部分人都能看懂吧,不过我还是啰嗦一下:

auto scene = HelloWorld::createScene();//这句话使用了c++11的新特性,详情请看http://www.cnblogs.com/hujian/archive/2012/02/15/2352050.html

首先调用了createScene函数来生成一个Scene类的对象,后面再解释 createScene函数里面做了什么事!!!

如果你们仔细的话,会发现auto layer=HelloWorld::create();这一个语句会自动调用init函数,因为create()初始化了了一个新的Helloworld对象,会自动调用init去初始化。
4、create () 我就不分析了,大家可以根据下面我介绍的方法研究一下。
经验分析:
1、遇到这种分析问题,遇到不懂的函数,善用xcode6的单步调试功能,
如果想要单步调试,还是按快捷键“continue ” (control+command+Y)比较方便

2、如果不知道这个函数干嘛用,就可以按住“command”,再左键点击想要看定义的函数

如下:


左键点击的时候,就会变色,然后就可以跳转到目标函数的定义;



继续看定义,如下



原来CREATE_FUNC(__TYPE__)是一段宏定义,相当于“static create()”方法的实现。



3、当时纠结了好久,不知道要研究cocos2dx 2.X 还是3.X,直到我把两种的helloworld 源码看了一遍之后,我发现无论 学哪一种都行,不过推荐3.X,因为3.X做了更多的封装,把开发者从大量的代码中解放出来,特别是UI设计方面,程序员不用再花过多时间去做界面

相关文章

    本文实践自 RayWenderlich、Ali Hafizji 的文章《...
Cocos-code-ide使用入门学习地点:杭州滨江邮箱:appdevzw@1...
第一次開始用手游引擎挺激动!!!进入正题。下载资源1:从C...
    Cocos2d-x是一款强大的基于OpenGLES的跨平台游戏开发...
1.  来源 QuickV3sample项目中的2048样例游戏,以及最近《...
   Cocos2d-x3.x已经支持使用CMake来进行构建了,这里尝试...