文档章节

cocos2d-x 游戏引擎入口

熊友良
 熊友良
发布于 2014/04/28 21:47
字数 662
阅读 215
收藏 3
点赞 0
评论 0

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
广州
程序员
Cocos实战篇——作品集

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

shahdza ⋅ 2015/03/19 ⋅ 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 ⋅ 4

java可以同时开发安卓和IOS

Cocos2d-x VS. OGEngine,联盟与部落的战争 在近期的全球移动开发者大会上,Unity发布了2D引擎,触控在同时发布了Cocos 3D引擎;而在差不多同时间,以安卓为主的OGEngine也发布了新版本,并宣...

keo牛 ⋅ 2014/08/04 ⋅ 0

两大开源游戏引擎Cocos2d-x及OGEngine对比分析

在近期的全球移动开发者大会上,触控发布了Cocos3D引擎;而在差不多同时间,以安卓为主的OGEngine也发布了新版本,并宣布将支持跨平台。 Cocos2d-x和OGEngine都是当前比较受开发者欢迎的开源...

橙游OrangeGame ⋅ 2014/08/11 ⋅ 1

开源的跨平台游戏开发框架--Cocos2d-x

Cocos2D-X 是全球知名的开源跨平台游戏引擎,易学易用,目前已经支持 iOS、Android、Windows 桌面、Mac OS X、Linux、BlackBerry、Windows Phone 等平台。Cocos2d-JS 统一了使用 JS 进行开发...

王哲Walzer ⋅ 2012/01/15 ⋅ 7

游戏开发之--开源软件1--cocos2d-x(c++)|openbor

Cocos2d-x 是一个支持多平台的 2D 手机游戏引擎,使用 C++ 开发,基于OpenGL ES,基于Cocos2d-iphone,支持 WOPhone, iOS 4.1, Android 2.1 及更高版本, WindowsXP & Windows7,WindowsPhon...

donghan ⋅ 2013/11/04 ⋅ 0

Cocos2d-x 程序是如何开始运行与结束的

怎么样使用 Cocos2d-x 快速开发游戏,方法很简单,你可以看看其自带的例程,或者从网上搜索教程,运行起第一个 SceneHelloWorldScene,然后在 HelloWorldScene 里面写相关逻辑代码,添加我们...

欧阳俊文 ⋅ 2013/09/26 ⋅ 1

别踩白块儿游戏源码(CocosEditor)

游戏源代码下载 运行demo需要配置好CocosEditor,暂不支持其他工具。demo是跨平台的,可移植运行android,ios,html5网页等,代码是基于javascript语言,cocos2d-x游戏引擎,CocosEditor手游...

touchsnow ⋅ 2014/05/01 ⋅ 0

总结阐述Cocos2d-X与Cocos2d-iphone区别

最近开始学习cocos2d, 查阅资料发现有个Cocos2d-X和Cocos2d-iphone, 不解,为什么会有两种 ... 在网上查阅找到了Himi写的这篇总结, 很详细,于是转来收藏!嘿嘿 ... 可能很多童鞋有点疑惑-...

junwong ⋅ 2012/02/29 ⋅ 1

【iOS-cocos2d-X 游戏开发之二】【必看篇】总结阐述Cocos2d-X与Cocos2d-iphone区别;

本站文章均为 李华明Himi 原创,转载务必在明显处注明: 转载自【黑米GameDev街区】 原文链接: http://www.himigame.com/iphone-cocos2dx/603.html 可能很多童鞋有点疑惑-。 -昨天刚写了如何搭...

迷途d书童 ⋅ 2012/03/19 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Spring JavaConfig 注解

JavaConfig注解允许开发者将Bean的定义和配置放在Java类中。它是除使用XML文件定义和配置Bean外的另一种方案。 配置: 如一个Bean如果在XML文件可以这样配置: <bean id="helloBean" class="...

霍淇滨 ⋅ 31分钟前 ⋅ 0

Spring clound 组件

Spring Cloud技术应用从场景上可以分为两大类:润物无声类和独挑大梁类。 润物无声,融合在每个微服务中、依赖其它组件并为其提供服务。 Ribbon,客户端负载均衡,特性有区域亲和、重试机制。...

英雄有梦没死就别停 ⋅ 32分钟前 ⋅ 0

Confluence 6 重新获得站点备份文件

Confluence 将会创建备份,同时压缩 XML 文件后存储熬你的 <home-directory>/backups> 目录中。你需要自己访问你安装的 Confluence 服务器,并且从服务器上获得这个文件。 运行从 Confluence...

honeymose ⋅ 37分钟前 ⋅ 0

informix的常用SQL语句

1、创建数据库 eg1. 创建不记录日志的库testdb,参考语句如下: CREATE DATABASE testdb; eg2. 创建带缓冲式的记录日志的数据库testdb(SQL语句不一定在事务之中,拥有者名字不被用于对象的解...

wangxuwei ⋅ 52分钟前 ⋅ 0

matplotlib画图

最简单的入门是从类 MATLAB API 开始,它被设计成兼容 MATLAB 绘图函数。 from pylab import *from numpy import *x = linspace(0, 5, 10)y = x ** 2figure()plot(x, y, 'r')...

Dr_hu ⋅ 今天 ⋅ 0

RabbitMQ学习以及与Spring的集成(三)

本文介绍RabbitMQ与Spring的简单集成以及消息的发送和接收。 在RabbitMQ的Spring配置文件中,首先需要增加命名空间。 xmlns:rabbit="http://www.springframework.org/schema/rabbit" 其次是模...

onedotdot ⋅ 今天 ⋅ 0

JAVA实现仿微信红包分配规则

最近过年发红包拜年成为一种新的潮流,作为程序猿对算法的好奇远远要大于对红包的好奇,这里介绍一种自己想到的一种随机红包分配策略,还请大家多多指教。 算法介绍 一、红包金额限制 对于微...

小致dad ⋅ 今天 ⋅ 0

Python 数电表格格式化 xlutils xlwt xlrd的使用

需要安装 xlutils xlwt xlrd 格式化前 格式化后 代码 先copy读取的表格,然后按照一定的规则修改,将昵称中的学号提取出来替换昵称即可 from xlrd import open_workbookfrom xlutils.copy ...

阿豪boy ⋅ 今天 ⋅ 0

面试题:使用rand5()生成rand7()

前言 读研究生这3 年,思维与本科相比变化挺大的,这几年除了看论文、设计方案,更重要的是学会注重先思考、再实现,感觉更加成熟吧,不再像个小P孩,人年轻时总会心高气傲。有1 道面试题:给...

初雪之音 ⋅ 今天 ⋅ 0

Docker Toolbox Looks like something went wrong

Docker Toolbox 重新安装后提示错误:Looks like something went wrong in step ´Checking if machine default exists´ 控制面板-->程序与应用-->启用或关闭windows功能:找到Hyper-V,如果处......

随你疯 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部