分析cocos2d-x中的CrystalCraze示例游戏

cocos2d-x自带了不少示例,以及几个比较简单的游戏,不过这些游戏都是用javascript binding(SpiderMonkey)做的,所以我猜测javascript binding可能是cocos2d-x开发游戏的主流模式,优点是:

  • 游戏逻辑用javascript,开发效率高,无需编译直接跑
  • 因为使用了javascript binding,实际跑的还是C++代码,性能不容小觑
  • javascript binding使用的api与cocos2d-html5一致,以后向cocos2d-html5移植转换成纯网页游戏的成本接近于0

CrystalCraze用的系统自然也是js binding。

 

一、代码目录结构

cocos2d-xsamplesJavascript*1 CrystalCrazeClassesproj.androidproj.iosproj.win32Sharedgames*2 CrystalCrazeCrystalCraze.ccbprojImagesPlatformPublished-AndroidPublished-iOSResourcesscriptingjavascriptbindings*3 jsjsb.jsjsb_chipmunk.jsjsb_chipmunk_constants.jsjsb_cocos2d.jsjsb_cocos2d_constants.jsjsb_cocos2d_extension.jsjsb_cocosbuilder.jsjsb_debugger.jsjsb_opengl.jsjsb_opengl_constants.jsjsb_sys.jsmain.debug.js

主要是打*的三个目录:

  1. 游戏各平台的工程文件,以及C++启动代码(用来初始化引擎,以及启动js脚本引擎)
  2. 游戏资源,包括图片,声音,场景文件(ccb,)以及包含游戏主逻辑的javascript文件
  3. javascript binding的接口 - 运行时拷贝到同一目录下去。

二、主要代码文件及流程

  1. 首先build的时候,会把资源、jsbinding都拷贝到游戏目标目录下。
  2. 在AppDelegate.cpp中启动引擎,设置好读取资源的文件夹,然后启动js binding引擎,跑main.js
  3. main.js读取MainScene.ccb场景,运行MainScene.js进入主场景
  4. 选取Play之后,读取GameScene.ccb场景,并运行GameScene.js进行游戏。

MainScene和GameScene是两个游戏画面,其逻辑分别由MainScene.js和GameScene.js控制,里面包含游戏处理逻辑,和事件响应函数。

三、一些文件类型

  • .ccbproj: CocosBuilder项目文件,用来管理场景文件(ccb)和其他资源(CocosBuilder目前只支持Mac)
  • .ccb/.ccbi: CocosBuilder场景文件,可以被引擎的BuilderReader直接读入
  • .plist: Property List,属性列表文件,它是一种用来存储串行化后的对象的文件,文件是xml格式的。
  • .ogg: OGG Vorbis, 是一种新的音频压缩格式,类似于MP3等的音乐格式。它是完全免费、开放和没有专利限制的,而且支持多声道
  • .psd:  Adobe Photoshop Document file.
  • .md: Markdown file

 

转载于:https://www.cnblogs.com/baiyanhuang/p/3199448.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/295216.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

WPF 实现一个酷酷的Loading

WPF开发者QQ群: 340500857 | 微信群 -> 进入公众号主页 加入组织由于微信群人数太多入群请添加小编微信号(yanjinhuawechat)或(W_Feng_aiQ)邀请入群(需备注WPF开发者)PS:有更好的…

DNS区域委派与转发

DNS区域委派与转发 DNS 是域名系统 (Domain Name System) 的缩写,该系统用于命名组织到域层次结构中的计算机和网络服务。在Internet上域名与IP地址之间是一一对应的,域名虽然便于人们记忆,但机器之间只能互相认识IP地址,它们之间…

惊了!哆啦A梦里最能打的道具,居然真实存在!还打破了世界纪录,看完跪了....

全世界只有3.14 % 的人关注了爆炸吧知识生活处处有科学《哆啦A梦》里的空气炮,是很多人童年时梦寐以求的神奇道具。只要将手伸进炮筒,就能发出强大的压缩空气炮,瞬间击倒体型庞大的怪物。为了证明“空气炮”的确有科学依据,有这么…

Android之如何解决Android Studio左边的的project不见了

今早上一打开Android studio,尼玛,我的project跑哪里去了,郁闷了,如下图 本来是要去问我师傅的,但是一想这么简单的问题也去问,弱爆了,如果在网上找不到解决问题的办法再去问吧,果然找到了&…

Win11推送加速!

微软宣布 Windows 11 现已开始向更多符合条件的 Windows 10 电脑推送。微软表示:无论是推广经验还是用户反馈,都是积极的。因此我们计划扩大 Windows 11 的推送范围,这比我们之前预期的要快。如果您有符合升级条件的 Windows 10 电脑&#xf…

h5通过php微信支付宝支付,用H5调用支付微信公众号支付的解析

这篇文章主要为大家详细介绍了微信公众号支付H5调用支付,具有一定的参考价值,感兴趣的小伙伴们可以参考一下最近项目需要微信支付,然后看了下微信公众号支付,虽然不难,但是细节还是需要注意的,用了大半天时间写了个dem…

这场戏里,到底是谁脏了?

1 让我表演个背包袱!▼2 猝不及防的劈叉(素材来源网络,侵删)▼3 就很出戏(素材来源网络,侵删)▼4 意识流拔河很有感觉了▼5 纯爱(素材来源网络,侵删)▼6 …

Android之如何解决刚下载的Android studio(包括上面的菜单栏)乱码问题

这个问题是我的台式机第一次下载Andorid studio的时候出现的,这台台式机组装的,是之前玩ps的人用了的,感觉怪怪的,第一次安装Android studio不是很熟悉,出现了乱码,包括菜单栏目,只有部分图片了,没有全部图片了 解决这个问题的总共思路: 思路一: 请教了那…

关于高级导数的一个不等式估计

from: http://math.fudan.edu.cn/gdsx/XXYD.HTM

体验.NET Core使用IKVM对接Java

【导读】与第三方对接最麻烦的是语言不同,因语言不同内置实现相关标准加密算法还是略微有所差异对接单点登录场景再寻常不过,由于时间紧迫且对接方使用Java,所以留给我对接开发和联调的时间本就不多,于是乎,在熬夜发版…

对硕士而言,编制和稳定究竟有多重要?

随着考研大战如火如荼,2021研究生报考数目再创新高,越来越多的学生选择继续深造,进入更高的学府,为自己的学历镀金。然而现实是,很多的人毕业后并不一定比本科生拥有明显的优势,包括在体制内的工作&#xf…

无需Windbg | 使用VS 2019调试.NET程序的Crash异常

前言某台服务器上的IIS应用程序池,最近经常会自动关闭。查看服务器上的事件日志,发现在关闭时,w3p.exe抛出了stackoverflow异常。幸好,Windows自动帮我们抓取了Crash的dump文件:一般来说,我们会使用windbg来…

被夸了几十年,地球都要因为它变秃了,你还天天用它......

全世界只有3.14 % 的人关注了爆炸吧知识纸袋的流行不是环保要的结果模友们,“限塑令”在中国已经实行12年了,惊讶不?经过12年的努力,塑料袋终于不在大街上明目张胆的漫天飞舞。超模君相信大家都有一个共同认知:塑料袋污…

Dubbo与Zookeeper、SpringMVC整合和使用(负载均衡、容错)(转)

互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,Dubbo是一个分布式服务框架,在这种情况下诞生的。现在核心业务抽取出来,作为独立的服务&…

孤掌难鸣-------堵水眼

序言: 一口水平井,井斜已经52度,方位在水平井的连线方向上。此段为增斜段,多次钻具组合的调整就为了正钻轨迹符合设计轨迹。然而在更换钻具组合下到底后,出现了两趟钻“堵水眼”的现象,第一次运气好顶开,而…

技术分享 | 一条神奇的曲线——贝塞尔曲线在前端的应用

源宝导读:在前端的开发中我们经常会遇到利用贝塞尔曲线帮助我们完成前端的动画和图形绘制,但是对其中的一些参数配置是一头雾水。本文将从贝塞尔曲线的原理讲起,由浅入深剖析一阶到多阶贝塞尔的实现原理,最后从三个方向来介绍它的…

女生来大姨妈该怎么哄她?

1 这捞人速度!▼2 老师:我怀疑你在内涵我!?(素材来源网络,侵删)▼3 就很出戏(素材来源网络,侵删)▼4 分手到底有多痛苦?▼5 家长会上看到的纸…

OAuth 2.1 的进化之路

背景2010年, OAuth 授权规范 1.0 (rfc 5849) 版本发布, 2年后, 更简单易用的 OAuth 2.0 规范发布(rfc 6749), 这也是大家最熟悉并且在互联网上使用最广泛的版本, 在2012年的时候, iPhone 5 是全新的, 微软最新的浏览器还是 IE9, 单页面应用在当时还被称作…

中科院超牛的物理学家,摇滚界无人不知的“李白”,你一定听过他的歌!

全世界只有3.14 % 的人关注了爆炸吧知识一个热爱音乐的科研工作者最近,有不少模友在后台问,如何如何去平衡好学习/工作和兴趣爱好之间的关系?很多人会说这么简单的问题,为什么还要问?其实并不简单,在现实生…

Nginx源码安装及应用

一:Nginx简介: Nginx ("engine x") 是一个高性能的HTTP和反向代理服务器。在高连接并发的情况下,Nginx是Apache服务器不错的替代品。 Nginx作为负载均衡服务器:Nginx 既可以在内部直接支持Rails和PHP 程序对外进行服务&…