《我所理解的cocos2dx》第一章 全新的cocos2dx

cocos2dx 3.0全面回归C++风格,抛弃Object-C,拥有更灵活的渲染架构,渲染与UI树遍历分离。新增统一的消息分发系统,物理引擎集成,以及优化的数据结构如Vector Map。同时,Label使用FreeType字体库,提升跨平台性能,并实现自动裁剪和批渲染技术,提高性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.1.1 回归C++风格

抛弃Object-C风格,完全回归C++风格

1.1.2 更灵活的渲染架构

重新设计了渲染架构,渲染从UI树遍历中分离

1.1.3 更自由的发展

cocos2dx 3.0放弃了与Cocos2d-iPhone保持同步,拥有一个更值得期待的未来,两者不应该是互相制约的关系,应该是互相促进的关系

1.2.1 使用C++风格

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.2.2 跨平台的Label

对字体进行了重构,使用开源的FreeType字体库来解析文字和生产纹理

1.2.3 新的渲染系统

在这里插入图片描述
遍历绘制的元素,不直接进行绘制,而是将绘制命令包装成RenderCommand对象发送到绘制栈,绘制栈在遍历场景中每个元素之后开始绘制
好处

  1. 绘制命令可以被重用,将绘制命令从UI树的遍历中分离,多个不同的元素可以使用相同的绘制命令进行组合,如Lable、Particle、TileMap、都使用BatchCommand进行绘制
  2. 绘制命令进行集中处理,渲染系统可以做一些优化工作。对于相邻的绘制命令,如果它们使用相同的RenderCommand类型,使用相同的纹理及绘制参数,渲染系统就可以把它们合成一次绘制,俗称批渲染,也称为自动批绘制技术

在这里插入图片描述

UI树更多决定的是一种元素的坐标系变换,cocos2dx通过给Node引入globalZOrder来设定全局的绘制顺序,绘制栈则会优先根据globalZOrder中的设定进行排序,然后根据localZOrder局部Z值进行排序,来决定绘制顺序。
在这里插入图片描述.
cocos2dx还为 Sprite 引入了自动裁剪技术,所以处于游戏视窗之外的sprite根本不会发送绘制命令到绘制栈,减少了不必要的绘制操作

1.2.4 统一的消息分发

事件分发器—EventDispatcher,能处理系统事件,也能注册自定义事件,简化游戏交互。
一个事件关联到一个UI元素,这个类型的事件根据该元素在场景中的绘制顺序被分发,离屏幕越近越优先处理。 好处: 当这个元素被移除场景时,与其相关联的订阅的处理者被移除,而不需要手动移除

1.2.5 物理引擎集成

  1. 物理世界被集成到Scene元素中,创建场景时可选择是否创建物理世界
  2. Node元素中包含一个physicsBody属性,对任何Node设置物理刚体
  3. 物理刚体包含了大量的物理属性和物理参数,能够被使用

1.2.6 新的数据结构

Vector Map<K,V>
与cocos2dx内存管理相结合

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值