摘要: 渲染是visit函数来做的,visit是先将不可见的节点和他所有的子节点都跳过,然后再看节点的子节点是否为空,如果为空的话直接看这个节点是否在摄像机可见范围之内,如果在就渲染这个节点,否则什么都不做。如果子节点不为空,就:先将子节点排序,通过zorder排序,如果zorder相同就通过先后加入节点树... 阅读全文
posted @ 2015-09-08 20:49 呱呱老师 阅读(282) 评论(0) 推荐(0)
摘要: 答案就是:在函数创建对象之前先创建一个自动释放池,因为这个释放池是函数里面的局部变量,所以当函数结束的时候,会调用他的析构函数,而普通的情况是在一帧结束的时候才会调用自动释放池(不是这个,普通的)的析构函数。基于这个背景来分析一下为什么。1.内存峰值过高是为什么? 在cocos2d中因为我们在一帧... 阅读全文
posted @ 2015-09-08 19:57 呱呱老师 阅读(1020) 评论(0) 推荐(0)
摘要: 设想如下场景,这是一个典型的内存合理分配的场景:在一帧内,有若干个函数,每个函数都会创建一系列的精灵,每个精灵都不同,都会占用一定的内存,精灵的总数可能会有1000个,而一个函数只会创建10个精灵这样,创建的精灵只会在这个函数中使用,大致代码如下:for(inti=0;ipush(this);}他向... 阅读全文
posted @ 2015-09-08 19:25 呱呱老师 阅读(265) 评论(0) 推荐(0)
摘要: 如题 阅读全文
posted @ 2015-09-08 15:45 呱呱老师 阅读(1766) 评论(1) 推荐(0)
摘要: Cocos2d-x用create创建对象,这个方法已经被引擎封装成一个宏定义了:CREATE_FUNC,下面是这个宏定义的实现:#defineCREATE_FUNC(__TYPE__)\static__TYPE__*create()\{\__TYPE__*pRet=new__TYPE__();\if... 阅读全文
posted @ 2015-09-08 13:03 呱呱老师 阅读(224) 评论(0) 推荐(0)