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

分析cocos2d-x中的CrystalCraze示例游戏相关推荐

  1. python 标签数量_python实现的批量分析xml标签中各个类别个数功能示例

    本文实例讲述了python实现的批量分析xml标签中各个类别个数功能.分享给大家供大家参考,具体如下: 文章目录 需要个脚本分析下各个目标的数目 顺带练习下多进程,自用,直接上代码: # -*- co ...

  2. 简易理解设计模式之:责任链模式——OA中请假流程示例

    介绍: 责任链模式属于行为型设计模式.它的定义为:使多个对象都有机会处理请求,从而避免了请求的发送者和接收者之间的耦合关系.将这些对象连成一条链,并沿着这条链传递该请求,只到有对象处理它为止. 类图: ...

  3. R语言构建生存分析(survival analysis)模型示例

    R语言构建生存分析(survival analysis)模型示例 生存分析处理的是预测特定事件将要发生的时间.它也被称为失败时间分析或死亡时间分析.例如,预测癌症患者存活的天数,或者预测机械系统将要失 ...

  4. 【Android 安全】DEX 加密 ( Application 替换 | 分析 ContentProvider 组件中调用 getApplication() 获取的 Application 二 )

    文章目录 一. ActivityThread 中的 installProvider 方法 ( 创建 ContentProvider 内容提供者 ) 二. installProvider 方法的第三分支 ...

  5. (译)如何使用cocos2d来制作一个打地鼠的游戏:第一部分

    免责申明(必读!):本博客提供的所有教程的翻译原稿均来自于互联网,仅供学习交流之用,切勿进行商业传播.同时,转载时不要移除本申明.如产生任何纠纷,均与本博客所有人.发表该翻译稿之人无任何关系.谢谢合作 ...

  6. 翻译:如何用Cocos2d来开发简单的IPhone游戏教程

    这一周接触到Cocos2D开发,在它的官网上看到Ray Wenderlic写的关于cocos2d开发的文章,感觉写的挺好,翻译了一下.  原文链接地址大家可以在上面看到作者的更多内容 初次翻译文章,望 ...

  7. Java敌人跟地图的碰撞_(译)加入敌人和战斗:如果使用cocos2d制作基于tiled地图的游戏:第三部分...

    免责申明(必读!):本博客提供的所有教程的翻译原稿均来自于互联网,仅供学习交流之用,切勿进行商业传播.同时,转载时不要移除本申明.如产生任何纠纷,均与本博客所有人.发表该翻译稿之人无任何关系.谢谢合作 ...

  8. 谷歌云请更正这张卡片的信息_如何识别和更正Google Analytics(分析)报告中的(未设置)值

    谷歌云请更正这张卡片的信息 Have you ever noticed the (not set) value instead of actual value in Google Analytics? ...

  9. (译)如何使用cocos2d制作基于tile地图的游戏教程:第一部分

    免责申明(必读!):本博客提供的所有教程的翻译原稿均来自于互联网,仅供学习交流之用,切勿进行商业传播.同时,转载时不要移除本申明.如产生任何纠纷,均与本博客所有人.发表该翻译稿之人无任何关系.谢谢合作 ...

最新文章

  1. php auth_http,php auth_http类库进行身份效验
  2. Ubuntu侧边任务栏自动隐藏
  3. 如何使用eclipse打开已有工程
  4. MySQL查看和修改表的存储引擎
  5. python观察日志(part23)--更改图片尺寸并保存
  6. oracle的操作大全,Oracle数据库操作大全(六)Oracle中操作数据
  7. CMakeList.txt中设置一个可变的变量的值(bool)
  8. 装NOILinux的奇妙经历
  9. 苹果6s强制删除id锁_回收宝:苹果6S手机从细节查真假
  10. python利用微信的方法_作为程序员,如何利用Python玩转微信,让你的微信与众不同...
  11. 线程库 c语言实现,130行C语言实现个用户态线程库——后续(一)
  12. Atitit 获取ip的http标头 目录 1.1. REMOTE_ADDR 是你的客户端跟你的服务器“握手”时候的IP 1 1.2.  HTTP_CLIENT_IP 客户ip。握手ip 1 1.3
  13. 电脑装机必备软件清单
  14. Google ptorobuf相关知识
  15. Vulhub-coldfusion--CVE-2017-3066
  16. andriod获取带字母的iccid
  17. coso js 魔窗
  18. iOS数据模拟 Mock方案
  19. 2年java开发工作经验
  20. 中台的问题,是技术的问题,还是人的问题

热门文章

  1. Python数据分析学习
  2. 后端:414 Request-URI Too Large解决方案
  3. 五种类型的程序员,你属于哪一种?
  4. app上线发布流程_APP上线发布流程
  5. 生产三码 黑苹果_黑苹果OC配置工具:OpenCore Configurator v2.15.2.0
  6. 集群服务器分布式iis_Nginx+IIS分布式部署和负载均衡
  7. linxu其他用户登录mysql_Linux系统的MySQL用户如何开启远程登录权限
  8. 跟我一起学WCF(2)——利用.NET Remoting技术开发分布式应用
  9. Tomcat乱码解决
  10. 深入分析JavaWeb Item7 -- HttpServletResponse详解