【cocos2d-js官方文档】十二、对象缓冲池

【cocos2d-js官方文档】十二、对象缓冲池,第1张

概述cc.pool的使用场景 经常创建和销毁的元素,例如打飞机游戏里面的子d等。 不适用的场景:不是很经常创建的物体,比如背景,建筑等。 如何使用cc.pool 让你的类支持cc.pool 首先,你需在需要使用cc.pool来管理的类中实现reuse和unuse方法,cc.pool在执行putInPool时将调用该对象的unuse方法,可以在unuse中完成进入回收池前的 *** 作,reuse是当你要从回收 cc.pool的使用场景 经常创建和销毁的元素,例如打飞机游戏里面的子d等。 不适用的场景:不是很经常创建的物体,比如背景,建筑等。 如何使用cc.pool

让你的类支持cc.pool

首先,你需在需要使用cc.pool来管理的类中实现reuseunuse方法,cc.pool在执行putInPool时将调用该对象的unuse方法,可以在unuse中完成进入回收池前的 *** 作,reuse是当你要从回收池中取出对象时的重新初始化 *** 作,你可以将这个对象初始化为重新可用的状态。

var MySprite = cc.Sprite.extend({    _hp: 0,_sp: 0,_mp: 0,ctor: function (f1,f2,f3) {        this._super(f1,f3);        this.initData(f1,f3);    },initData: function (f1,f3) {        this._hp = f1;        this._mp = f2;        this._sp = f3;    },unuse: function () {        this._hp = 0;        this._mp = 0;        this._sp = 0;        this.retain();//if in Jsb        this.setVisible(false);        this.removeFromParent(true);    },reuse: function (f1,f3) {        this.initData(f1,f3);        this.setVisible(true);    }}); MySprite.create = function (f1,f3) {    return new MySprite(f1,f3)}MySprite.reCreate = function (f1,f3) {    var pool = cc.pool;    if (pool.hasObject(MySprite)) return pool.getFromPool(MySprite,f1,f3);    return  MySprite.create(f1,f3);}

放入回收池

cc.pool.putInPool(object);

调用此方法将调用对象的unuse的方法,并将对象放入回收池。

从回收池回收对象

var object = cc.pool.getFromPool("MySprite",args);

当你需要从回收池中取出一个对象,你可以调用getFromPool传入对象的class,以及传入需要传入的初始化参数,这些参数将被传入reuse方法中,cc.pool将自动调用reuse方法。

判断回收池中是否有可用对象

var exist = cc.pool.hasObject("MySprite");

该方法用于查找回收池中是否存在MySprite类的可回收对象。

删除回收池中的某个对象

cc.pool.removeObject(object);

将你要删除的对象传入,该对象将会从回收池删除。

清空回收池

cc.pool.drainAllPools();

当你需要清除所有回收池中的对象,例如完成游戏要进入其他页面,旧页面中的可回收对象不再有用了,为避免不必要的内存占用,你可以使用drainAllPools删除所有的可回收对象。

转载请注明:http://www.cocos2dx.net/post/202 总结

以上是内存溢出为你收集整理的【cocos2d-js官方文档】十二、对象缓冲池全部内容,希望文章能够帮你解决【cocos2d-js官方文档】十二、对象缓冲池所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1021333.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存