• 这几天在看我

    这几天在看我所理解的cocos2dx这个本书,看了几章后想给自己做个总结,如果哪里不对,请看到的人帮我指正出来,谢谢!

    我所理解的cocos2dx这本书,主要是针对3.x以后的版本讲解了一些新添加的东西。

    第一章

    这一章主要讲解了一下cocos2dx的一些新的特性,我主要总结的是新的数据结构的添加。

           c++标准库提供的vector,map等等虽然给我们提供了使用上的方便,但是它们不支持cocos2dx的内存管理方式,因此在使用的过程中需要我们自己管理内存,一不小心就可能导致空指针等等原因导致程序崩溃(我在2.x版本的时候喜欢用标准库的东西),现在新的版本给我们提供了新的数据结构vector<T>和map<K,V>(V必须为Ref类型),新的容器类采用模板类来避免不必要的数据类型的转换,同时完美的支持标准库里面的find,sort等函数,也能够与cocosdx的内存管理方式结合,帮我们省去了很多的麻烦。

    新的数据结构的特点:

    性能分析:

    1.c++标准库的map是利用Key值作为索引存储。cocos2dx默认使用std::unordred_map是将每个key值转化为hash值,并按照hash值排序存储。

    2.std::map的find()函数的时间复杂度为O(log2(n)),std::unordred_map复杂度为O(n)。

    3.std::unordred_map初始化时候分配少量的buckets来存储Key/Value,如果短时间插入一定量的数据需要resverve()方法来设定数量,避免造成性能问题,但是偶尔的插入不需要,因为resverve()会增加std::unordred_map的内存占用。

    与内存管理的结合

    1.2.x的CCArray和CCDictionary通常被分配到堆上,因此我们需要考虑内存的释放,新的容器类不在继承Ref,通常应该分配到栈上使用,从而简化了内存管理。

    2.Vector<T>和Map<K,V>利用c++11的静态断言函数static_assert来实现编译时的类型检测。

    3.任何元素进入容器都会被retain,任何元素离开容器都会被release。

    移动语义

    新的容器使用了c++11的move语义,他们实现了移动拷贝函数和移动赋值操作符,减少了不必要的临时变量的生成和复制。(暂时这个我没用过,只能照搬书籍)

    展开全文
  • 第5章:纹理 TextureCache: 用来缓存纹理的对象。图片被加载到内存后,纹理会被缓存,下次加载不会执行IO操作。但是占用内存,可以调用removeUnusedTextures()方法来移除场景中没有被使用的问题,来提高节约内存的...
  • 我所理解Cocos2d-x》PDF 2016-05-24 22:03:55
    我所理解Cocos2d-x》 针对最新的 Cocos2d-x 3.x版本,介绍了Coco2d-x游戏引擎的基本架构、渲染机制,以及各个子模块的功能和原理,并结合OpenGL ES图形渲染管线,深入探讨了游戏开发中涉及的相关图形学的...
  • 我所理解cocos2dx pdf 2020-06-03 23:32:56
    我所理解cocos2dx pdf
  • 我所理解Cocos2d-x 影印版 pdf
  • cocos2d-x 2.x 与 cocos2d-x 3.x 差异(tolua++) cocos2d-x在2.x版本里就是用toLua++和.pkg文件这么把自己注册进Lua环境里的,然而从cocos2d-x 3.x开始,用bindings-generator脚本代替了toLua++。 bindings-...
  • 我所理解Cocos2d-x》针对最新的 Cocos2d-x 3.x版本,介绍了Coco2d-x游戏引擎的基本架构、渲染机制,以及各个子模块的功能和原理,并结合OpenGL ES图形渲染管线,深入探讨了游戏开发中涉及的相关图形学的知识,...
  • Cocos是触控科技推出的游戏开发一站式解决方式,包括了从新建立项、游戏制作、到...Cocos的主要产品有Cocos Studio、Cocos2d-x(Cocos Framework)、Cocos Code IDE。Cocos Studio:是Cocos2d-x引擎配套的跨平台游戏开...
  • cocos2d-x 3.6 创建lua demo, 简单分享一下思路和一些开发中的技巧。先简单说说MVC,即Model View Controller。Model(模型):一般负责数据的处理View(视图):一般负责界面的显示Controller(控制器):一般负责...
  • 我所理解Cocos2d-x 2020-06-22 16:39:49
    我所理解Cocos2d-x ,秦春林编著 ,P438.pdf我所理解Cocos2d-x ,秦春林编著 ,P438.pdf我所理解Cocos2d-x ,秦春林编著 ,P438.pdf我所理解Cocos2d-x ,秦春林编著 ,P438.pdf我所理解Cocos2d-x ,秦春林编著 ,P...
  • 我所理解Cocos2d-x P438.pdf 2020-07-08 23:31:06
    详解cocos2d原理部分知识,非常值得一看
  • 我所理解Cocos2d-x,都是影印版的,字体不清晰,多页面重叠影响阅读;我上传的资源是从别人手上花钱买的,郑重承诺带非常详细,并且相当清晰,书签完整非影印版,本人也在网上找了好久~欢迎下载
  • 作者以前参与过cocos引擎的开发,因此是以自己的角度讲解cocos引擎,不同于市面上很多单纯罗列cocos api和代码的书,而是结合OpenGL ES和图形学,对于cocos的讲解深入到引擎实现层面。看完之后,对于cocos引擎的各...
  • 我所理解Cocos2d-x第一章笔记 主要介绍了3.0之于2.0的改变 Cocos2d-x 3.0 新特性 使用C++风格  3.0 2.0 1 ,使用命名空间 代替 “CC”前缀 2 ,新的clone() 直接返回一个加入 autorelease 的对象 3 ,...
  • 这是非影印版的,字迹清晰。看网上影印版的吐槽太多,自己花钱下载的,网上的积分都太高了。好资源共享一下,下载完不错的记得好评。
  • 我所理解cocos2d-x笔记1 2018-01-02 11:58:40
    一个游戏对应于一个Application对象,但在cocos中并不会直接建立该对象,而是通过继承Application的AppDelegate类来处理游戏各阶段,类中包含applicationDidFinishLaunching, applicationDidEnterBackground以及...
  • 新特性回归C++风格对于一个纯C++语言的引擎来说,那种原汁原味的C++风格才是开发者最为习惯的。 使用命名空间代替“CC”前缀。 使用clone()代替copyt()方法。与以前的copy方法不同是,clone()方法直接返回一个加入...
1 2 3 4 5 ... 20
收藏数 13,711
精华内容 5,484