文档章节

cocos2d-x 游戏引擎入口

熊友良
 熊友良
发布于 2014/04/28 21:47
字数 662
阅读 228
收藏 3

Cocos2d-x 是当前手游开发2d游戏最热门的引擎了,从知道Cocos2d-x到现在也有一年多的时间,但使用cocos2d-x的时间却是非常少的,以至于现在使用的时候都是一头雾水;所以现在打算 跟进一步的了解Cocos2d-x游戏引擎……

Cocos2d-x支持跨平台,而各种平台的实际应用入口是不相同的,为了寻找游戏引擎的入口,现用ios平台来说明; 注:我本非iOS开发者,对于iOS应用基本框架是不熟悉的,所以下面说的不会很详细,大概知道干吗的就可以了

打开3.0 版本的 cpp-empty-test, 在proj.ios目录下找到main.m,会发现有一个@"AppController";接下来在proj.ios目录下找到AppController.mm文件,有一个静态的AppDelegate对象;在application方法的最后 cocos2d::Application *app = cocos2d::Application::getInstance();查看Application类、AppDelegate类、ApplicationProtocol类的源代码后会发现,app是指向前面看到的AppDelegate静态对象的;跟踪app->run();调用,可以看到CCDirectorCaller类的startMainLoop方法中,会看到有一个selector:@selector(doCaller:); 进入到doCaller方法中就能看到熟悉的东西了:Director::getInstance()->mainLooop();至此,才真正到了引擎内的主循环,开始绘制场景;

再有,一般教程会从AppDelegate类说起,这样的说法个人认为,虽然逻辑上游戏的入口确实是从这里启动的:第一个要加载的场景,第一个要加载的视图层都是在这里载入的,从游戏功能开发的角度看,开发者只要关心这个入口就够了;但对于想一探究竟的开发者来说,尤其是没有开发经验的新人来说绝对是一个坑; 再吐槽一个:AppDelegate::applicationDidFinishLaunching()方法中调用的Director::getInstance()->runWitnScene();真的只是一个逻辑上的run,进到方法内部后发现,它其实只是一个scene压栈的过程;也就是一个初始化需要最初绘制的东西的过程……

但回过头来讲,这样的设计是合理的,将需要隐藏的隐藏起来,给开发者一个简单的入口;

最后,一如既往的是,欢迎大家的意见和建议……,大家共同学习

© 著作权归作者所有

共有 人打赏支持
熊友良
粉丝 4
博文 18
码字总数 6327
作品 0
广州
程序员
私信 提问
微软加盟 Cocos2d-x将赴广州办沙龙

继4月成都沙龙深入中原腹地之后, Cocos2d-x沙龙本次将来到东南沿海,于本月14日在广州举办沙龙,与广东珠三角的开发者们零距离接触,交流Cocos2d-x引擎的最新动态,更有微软资深项目经理带来...

一hii
2014/06/10
370
4
Cocos实战篇——作品集

【唠叨】 之前学校的WP课程大作业需要交好几个WP应用,所以随手写了几个游戏。 现在有空,把它分享给大家。 【小游戏目录】 CrazyDodge PaperPlane Sudoku 【CrazyDodge】 0、源码 https://...

shahdza
2015/03/19
0
0
Cocos2d 开源社区进军 Windows Phone 7: Cocos2d-x for XNA游戏引擎发布

2012 年 2 月 17 日,著名的开源社区 Cocos2d 发布 Cocos2d-X for XNA 版本。该游戏引擎针对微软最新移动操作系统 Windows Phone 7 平台,开发者可以采用 C# 语言开发基于 Windows Phone 平台...

红薯
2012/02/17
1K
4
【手机游戏开发】分享《Cocos2D-X游戏开发技术精解(第2版)》电子版

内 容 提 要 Cocos2D-X是一款支持多平台的 2D 手机游戏引擎,支持iOS、Android、WinPhone等众多平台。当前,很多移动平台流行的游戏,都是基于Cocos2D-X开发的。 本书详细介绍如何使用Cocos...

不问旧梦
2015/11/19
108
0
【手机游戏开发】分享《Cocos2D-X游戏开发技术精解(第2版)》电子版

内 容 提 要: Cocos2D-X是一款支持多平台的 2D 手机游戏引擎,支持iOS、Android、WinPhone等众多平台。当前,很多移动平台流行的游戏,都是基于Cocos2D-X开发的。 本书详细介绍如何使用Coc...

不问旧梦
2015/11/19
1K
3

没有更多内容

加载失败,请刷新页面

加载更多

Docker默认的网络模式

Docker默认的网络模式:Bridge模式 该模式会为每个容器分配Network Namespace子系统,会自动给每个容器虚拟出自己的网卡、IP、网关、路由等信息,无需手工添加。 5分钟玩转 Docker Bridge...

吴伟祥
13分钟前
2
0
Docker方式部署Github监控系统Hawkeye

0.系统环境 CentOS Linux release 7.6.1810 (Core)|Python 2.7.5|2018年10月12日版Hawkeye step1:docker安装 见:https://my.oschina.net/guiguketang/blog/1843594 step2:安装mongodb #vim ......

硅谷课堂
21分钟前
1
0
混合模型---logistic模型的混合

专家混合

中国龙-扬科
24分钟前
3
0
自定义参数校验注解 (实现ConstraintValidator方法)

Hibernate Validator常用注解(图网上找的) 2.自定义校验器 a.注解类 @Target({FIELD, METHOD, PARAMETER, ANNOTATION_TYPE})@Retention(RUNTIME)@Documented@Constraint(validatedB......

INSISTQIAO
28分钟前
1
0
Integer 实现

Integer 封装类型,参数传递传的是值,不是引用 内带缓存,-128 到127 -128 到127 直接数值 IntegerCache 如果不在这个范围,才会new Integer () public static Integer valueOf(int ...

Java搬砖工程师
28分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部