汇众教育上海虹口游戏校区
当前位置:综合资讯 > 正文

cocos最新版本介绍

汇众虹口游戏学院 2015-04-14 刘丹丹

 

今天,我们特邀汇众最美程序讲师丹丹老师专门针对cocos最新版本的更新介绍为我们撰稿,其内容主要是面向有cocos基础的人群。(以下丹丹老师原文)

首先我们整体概括介绍Cocos2d-x v3.0的一些新特性:

1.使用 C++(C++11) 的特性取代了 Objective-C 的特性

2.优化了 Labels

3.优化了渲染器

4.新的事件分发机制

5.物理引擎集成

6.新的 UI 对象

7.模板容器

    * 使用 cocos2d::Map<> 替代了 CCDictionary , 用法

    * 使用 cocos2d::Vector<> 替代了 CCArray, 用法

    * 使用 cocos2d::Value 替代了 CCBool, CCFLoat, CCDouble, 用法

    今天主要来给大家讲解几个新版本当中比较常用的变更.

第一Sprite SpriteBatchNode

v2.2版本中推荐的优化游戏方式是将 SpriteBatchNode 对象设置为 Sprite 对象的父节点。

虽然使用 SpriteBatchNode 对象仍然是一个非常好的优化游戏的方式,但是它仍然有一定的限制:

Sprite对象的孩子只能是Sprite(否则,Cocos2d-x会触发断言)

     * Sprite父节点是SpriteBactchNode时,ParticleSystem不能作为Sprite的子节点。

     * 这将导致当Sprite父节点是SpriteBatchNode时,不能使用ParallaxNode

所有的 Sprite 对象必须共享相同的纹理ID (否则,Cocos2d-x 会触发断言)

Sprite 对象使用 SpriteBatchNode 的混合函数和着色器。

虽然v3.0仍然支持SpriteBatchNode(与之前版本拥有相同的特效和限制),但我们不鼓励使用它。相反,我们推荐直接使用Sprite,不需要将它作为子节点添加到SpriteBatchNode中。但是,为了能让v3.0有更好的表现,你必须要确保你的Sprite对象满足以下条件:

贡献相同的纹理ID(把它们放在一个spritesheet中,就像使用 SpriteBatchNode 一样)

确保它们使用相同的着色器和混合函数(就像使用 SpriteBatchNode 一样)

如果这么做,Sprite将会像使用SpriteBatchNode一样的快。(在旧设备上大概慢了10%,在新设备上基本上察觉不出)

v2.2 v3.0 最大的区别在于

*Sprite 对象可以有不同的纹理ID

*Sprite 对象可以有不同种类的 Node 作为子节点,包括 ParticleSystem

*Sprite 对象可以有不同的混合函数和不同的着色器

但是如果你这么做,渲染器 可能无法对它所有的子节点进行批处理(性能较低)。但是游戏仍然可以正常运行,不会触发任何断言。

第二个优化 LabelTTF / LabelBMFont / LabelAtlas

LabelTTF, LabelBMFont LabelAtlas 将会被新的Label代替。

新的Label 带来的好处有:

* 统一了创建 LabelTTF, LabelBMFont LabelAtlas API

* 使用freetype生成labels的纹理,保证了在不同平台下labels有相同的效果;

* 缓存纹理以提高性能。

第三新的事件分发机制

触摸事件,键盘事件,加速器事件和自定义事件等所有事件都由EventDispatcher分发。

TouchDispatcher,KeypadDispatcher,KeyboardDispatcher,AccelerometerDispatcher已被移除。

EventDispatcher 的特性主要有:

*事件的分发基于渲染顺序;

*所有的事件都由 EventDispatcher 分发;

*可以使用 EventDispatcher 来分发自定义事件;

*可以注册一个 lambda 表达式作为回调函数。

 第四物理引擎集成

v3.0 中,我们把基于 Chipmunk2D 的物理引擎集成到 Cocos2d-x 中,通过这些特性,你可以很容易创建基于物理效果的游戏,而不必去理解物理引擎。

今天就先给大家介绍这么多, 后续再为大家继续介绍。

 

0
  • 学校详细地址:上海市虹口区东江湾路188号B座10楼 (上海数字媒体产业园)
  • http://hk.gamfe.com/
全国服务咨询热线 021-36080008
分享到: