一、引擎系统总览

游戏引擎是为某种使用方式而编写的程序,其使用方式的不同导致各引擎之间的差异,其引擎内系统之间可能交叉在一起。

下面是对一般引擎系统的构成划分,如下图:

我所理解的Cocos2d-x(一) cocos2d-x架构一览

cocos2d-x使用了些第三方开源库,用于支持文件解压、图片解析、网络支持、视频音频等功能;此外,cocos2d-x封装了些与平台无关的接口,如文件加载、纹理解析、线程操作等。

渲染系统是cocos2d-x的核心部分,包含了场景中元素的层级结构、关系及元素的管理、遍历和绘制等。这一层也是与OpenGL ES交互的部分。

此外,cocos2d-x有一套优秀的动画系统,它将一些非动画的特性(如回调函数)与动画结合起来,大大简化了游戏开发工作。

最后,cocos2d-x支持丰富的第三方工具,如TexturePacker、Tiled、CocosBuilder等。

二、Cocos2d-x内存管理机制

cocos2d-x采用引用计数的内存管理机制。

cocos2d-x中几乎所有对象都继承自Ref基类。Ref基类主要的职责就是对对象进行引用计数管理。

通过特定的操作调用retain方法,引用计数加1;调用release方法,引用计数减1。为了避免开发时对计数本身管理的成本,cocos2d-x将这两种方法封装在了这些特定方法中,如new,removeFromParent等。

cocos2d-x同时将这些对象加入到AutoReleasePool中,便于每帧最后对对象执行释放操作。

三、主循环中每帧执行

cocos2d-x在每帧发生的所有事情如下图所示:

我所理解的Cocos2d-x(一) cocos2d-x架构一览

四、其他

cocos2d-x还提供了如scheduler、异步加载、事件分发等功能,其高度的灵活性与拓展性大大增加了开发效率,同时也是对游戏性能优化的可采取方案。

 

相关文章:

  • 2021-07-31
  • 2021-05-02
  • 2021-06-08
  • 2022-12-23
  • 2021-12-10
  • 2022-12-23
  • 2021-12-16
猜你喜欢
  • 2021-10-20
  • 2021-07-04
  • 2021-08-23
  • 2021-05-17
  • 2021-11-16
  • 2022-12-23
相关资源
相似解决方案