cocos2d垃圾回收机制,add/removeChild()函数



       垃圾回收机制
?collectgarbage("collect"):运行一个完整的垃圾回收周期。
?collectgarbage("count"):返回当前程序使用的内存总量,以 KB 为单位。
?collectgarbage("restart"):如果垃圾回收器停止,则重新运行它。
?collectgarbage("step"):进行一次垃圾回收迭代。第二个参数值越大,一次迭代的时间越长;如果本次迭代是垃圾回收的最后一次迭代则此函数返回 true。
?collectgarbage("stop"):停止垃圾收集器运行。

?collectgarbage("setpause"):设置垃圾收集暂停时间变量的值,值由第二个参数指出(第二参数的值除以 100 后赋予变量)
该数值被用于控制垃圾收集器被 Lua 自动内存管理再次运行之前需要的等待时长。当其小于 100 时意味着收集器在新周期开始前不再等待。其值越大垃圾回收器被运行的频率越低,越不主动。当其值 200 时,收集器在总使用内存数量达到上次垃圾收集时的两倍时再开启新的收集周期。因此,根据程序不同的特征,可以通过修改该值使得程序达到最佳的性能。

?collectgarbage("setsetmul"):设置垃圾收集器步长倍增器的值,
步长倍增器用于控制了垃圾收集器相对内存分配的速度。数值越大收集器工作越主动,但同时也增加了垃圾收集每次迭代步长的大小。值小于 100 可能会导致垃圾器一个周期永远不能结束,建议不要这么设置。默认值为 200,表示垃圾收集器运行的速率是内存分配的两倍。


 2.缓存类:纹理缓存(TextureCache)、精灵帧缓存(SpriteFrameCache)、动画缓存(AnimationCache)
 、着色器缓存(ShaderCache)


3.分辨率策略:cc.ResolutionPolicy.EXACT_FIT(精确配合)、cc.ResolutionPolicy.NO_BORDER(无边策略)、cc.ResolutionPolicy.SHOW_ALL(全显示策略)、cc.ResolutionPolicy.FIXED_HEIGHT(固定高度)、cc.ResolutionPolicy.FIXED_WIDTH(固定宽度)



addChild()函数有三个参数:

1、要加入场景的对象的指针,(可以是CCSprite*,CCLayer*,CCNode*等类型)

2、绘制层的顺序,默认参数值为0,表示最高优先层导入,该值越大表示该层在最后加载(在最高一层),一般背景图层是首先加载,其他元素在加载在背景层上面。因为背景在后面加载的话,会覆盖掉前面加载的元素,看不到想要的图层组合效果。

3、Tag标记。赋予类的某个方法中定义的局部变量(CCNode*类型对象,CCSprite*对象等)一个标记号tag,如果以后在该类的其他方法中要访问这个变量时可以通过调用函数 getChildByTag来取回该对象,从而方便使用这个对象进行想要的操作。这样做的好处是:定义成类的成员变量会一直占用内存资源,而局部变量的生命周期比成员变量短,节省系统资源,而且在外面就可以通过函数getChildByTagtag号来获取这个对象。
virtual void addchild( Node * child , int localZOrder , int tag )添加一个子节点到容器中,有Z轴顺序和一个标记。

扫描二维码关注公众号,回复: 1590836 查看本文章

1.如果子节点被添加到了一个“running(活动着的)”节点,那么'onEnter'和 'onEnterTransitionDidFinish' 将会立即调用。

addChild:是指要添加的子成员(Node *类型,可移式Sprite, Layer等等);

z:是指添加的ZOrder值,ZOrder是指该成员的层级(也可以说深度),z值大的成员在z值小的成员的上面,上面的会覆盖下面的,0的话就是最低的层级,层级一样的话根据谁后绘制的就覆盖先绘制的。层级不同的时候,还是可以进行物理碰撞。

tag:是指该成员的tag值,tag值是一个成员的标识,如果丢掉了这个变量,可以通过getChildByTag(tag)把这个成员找到。


removeChild方法的参数的解析
virtual void removeChild ( Node * child , bool cleanup )从容器中删除一个孩子,取决于cleanup参数,同时可能会清除所有的活动的动作。
child 希望被删除的子节点。
cleanup 为true 表示在这个节点上所有的动作和回调都会被删除, false 就不会删除。


猜你喜欢

转载自blog.csdn.net/dongjingxia/article/details/72817534