CreateJS 与 Cocos2d-HTML5 的比较

来源:互联网 发布:网络本科文凭有用 编辑:程序博客网 时间:2024/06/04 00:39

    之前看了很多HTML5游戏框架,也做了详细的分析比较,就目前来说 只有 CreateJS 和 Cocos2d-HTML5 具备 商业开发的水准, 一方面 是 功能实现程度 和 稳定性,另一方面是 商业公司的 支持力度 ( 一个是Adobe,另一个是触控科技 )。 总的来说,两款 引擎的 在开源社区的 人气还是不错的,基本 也是 目前 HTML5 2d游戏 最好的 两个选择。

    当然具体比较 两款引擎,差别还比较大的,下面 我做一个 稍微 详细的 分析。


    一. API设计

    在API设计方面,CreateJS 与 Flash 相似, 包括 Stage,DisplayObject,Container,Sprite 等等 都与 Flash 是完全一致的, 对于 Flasher 来说,很容易就能 用熟悉的方式 编写 JS 代码了。

    Cocos2d-HTML5 是 Cocos2d-x 的 HTML5版本,在 API 上与 C++ 的那一套代码 基本一致, 所以写过 Cocos2d-x 的人 上手起来肯定更快。


    二. 框架特点

    这里需要说明的是,CreateJS 并不完全算的上是一款 游戏框架, 更准确的说 应该是一款 动画交互框架,它提供了 事件模型,心跳机制,渲染机制,显示对象,滤镜,音频,资源管理,补间动画 这些常用的功能,基本能满足 一些 简单游戏的 开发了。

    而 Cocos2d-HTML5 就完全是一款 游戏框架了,所以 在框架的 重量级 上 也比 CreateJS 大不少( 压缩后 1M 多 ),提供了canvas 和 webgl 两种不同的渲染方式,一些 常用的 GUI 组件(Label,MenuItem,ScrollView等) 和 大量的 扩展功能(Tilemap,Box2d,GL特效和 3D变换),在功能上 对于 游戏开发者来说算是 很丰富了。


    三. 工具支持

    在 Flash CS6中,通过 Toolkit for CreateJS 可以将 flash 动画 导出成 CreateJS 可用格式。另外 CreateJS 中的 ZOE 工具 也能 将 swf 导出成 json数据 和 图片资源,但是不灵活,比如 一个骨骼动画 却导出成了 序列帧,一百多帧的 图片大小可想而知。

    而 CocosStudio 是为 Cocos2d 系列 量身定做的,编辑 UI 和 动画都很方便。


    四. 移动平台本地化

    html5应用目前还没有一个核心平台去提高产品的曝光率,导致很多时候,我们不得不将Web App通过浏览器包壳的方式包装成 本地应用去发布。

    所以,如果使用浏览器打包的方式,CreateJS 和 Cocos2d-HTML5 都会面临 本地访问资源跨域的问题。所以需要对框架进行跨域处理,其中 CreateJS 里面的 鼠标检测机制 (hitTest)需要重写,即 原来的 像素检测 修改为 矩阵检测 (getImageData 不能处理跨域资源)。

    而 Cocos2d-HTML5 要完全重写 Load 机制(基于XmlHttpRequest),显然是不可取的。当然 Cocos2d-JSB 能帮我们很好的 解决本地化问题,通过 HTML5版本 和 JSB版本的 JS代码兼容(两者的 API  90%上是一致的,不一致的部分就完全是个坑了~~),可以 通过原生应用的 方式去 运行程序了。


    五. 优缺点

    通过两个框架的使用经历,两个框架的 优缺点 都很明显。

    CreateJS 的优点是 轻量级,上手快,易扩展,开发中小型游戏十分合适,缺点是 工具支持不够好,缺少游戏相关的功能。

    Cocos2d-HTML5的优势 就是功能丰富,工具支持(2.2以后),可移植成原生程序(JSB版本),缺点是 移植成原生应用时坑太多(新版本好像好一些),而且对Cocos2d API依赖性太强,不能轻易修改。

    

    就目前来说,CreateJS 和 Cocos2d-HTML5 都很不错了,大家可以 根据不同的需求可以选择 合适的框架。

    希望 大家 都能用HTML5 做一些 重量级的产品吧。

0 0