【cocos2d-js官方文档】十二、对象缓冲池
cc.pool的使用场景
- 经常创建和销毁的元素,例如打飞机游戏里面的子弹等。
- 不适用的场景:不是很经常创建的物体,比如背景,建筑等。
如何使用cc.pool
让你的类支持
cc.pool首先,你需在需要使用
cc.pool来管理的类中实现reuse和unuse方法,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, f2, f3);
this.initData(f1, f2, f3);
},
initData: function (f1, f2, 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, f2, f3) {
this.initData(f1, f2, f3);
this.setVisible(true);
}
});
MySprite.create = function (f1, f2, f3) {
return new MySprite(f1, f2, f3)
}
MySprite.reCreate = function (f1, f2, f3) {
var pool = cc.pool;
if (pool.hasObject(MySprite)) return pool.getFromPool(MySprite, f1, f2, f3);
return MySprite.create(f1, f2, 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删除所有的可回收对象。
【cocos2d-js官方文档】十二、对象缓冲池的更多相关文章
- 转:ArcGIS API For JavaScript官方文档(二十)之图形和要素图层——①Graphics概述
原文地址:ArcGIS API For JavaScript官方文档(二十)之图形和要素图层——①Graphics概述 ArcGIS JavaScript API允许在地图上绘制graphic(图形) ...
- bootbox.js官方文档中文版
bootbox.js官方文档中文版简介:Bootbox.js是一个小型的JavaScript库,基于Bootstrap模态框开发,用于创建可编程的对话框. 不像原生的alert等对话框,所有的Boot ...
- OKHttp 官方文档【二】
OkHttp 是这几年比较流行的 Http 客户端实现方案,其支持HTTP/2.支持同一Host 连接池复用.支持Http缓存.支持自动重定向 等等,有太多的优点. 一直想找时间了解一下 OkHttp ...
- Hui之Hui.js 官方文档
基础 // 判断值是否是指定数据类型 var result = hui.isTargetType("百签软件", "string"); //=>true ...
- Gora官方文档之二:Gora对Map-Reduce的支持
参考官方文档:http://gora.apache.org/current/tutorial.html 项目代码见:https://code.csdn.net/jediael_lu/mygoradem ...
- Gora官方文档之二:Gora对Map-Reduce的支持 分类: C_OHTERS 2015-01-31 11:27 232人阅读 评论(0) 收藏
参考官方文档:http://gora.apache.org/current/tutorial.html 项目代码见:https://code.csdn.net/jediael_lu/mygoradem ...
- 【cocos2d-js官方文档】二十五、Cocos2d-JS v3.0中的单例对象
为何将单例模式移除 在Cocos2d-JS v3.0之前.全部API差点儿都是从Cocos2d-x中移植过来的,这是Cocos2d生态圈统一性的重要一环.可惜的是,这样的统一性也在非常大程度上限制了C ...
- 【cocos2d-js官方文档】二十、moduleConfig.json
概述 该配置文件相当于v2版本号中的jsloader.js. 改造的目的是为了使得配置纯粹化,同一时候也能比較好的支持cocos-console.cocos-utils甚至是用户自己定义脚本工具. 字 ...
- Vue.js官方文档学习笔记(二)组件化应用的构建
组件化应用的构建 组件化应用允许我们使用小型.独立和通常可复用的组件构建大型应用. Vue注册组件 Vue.component('todo-item',{template:'<li>这是个 ...
- 【cocos2d-js官方文档】二、资源管理器Assets Manager
这篇文档将介绍Cocos2d-JS 3.0的一个重量级新特性:资源管理器(仅支持JSB).资源管理器是为游戏运行时的资源热更新而设计的,这里的资源可以是图片,音频甚至游戏脚本本身.使用资源管理器,你将 ...
随机推荐
- online community
online community spectrum https://spectrum.chat/xgqfrms https://community.xgqfrms.xyz/ https://spect ...
- bzoj3011 可并堆
我们可以遍历得出每个节点到根节点的距离h,然后用可并堆进行维护.树形dp 我用的是pairing heap #include<cstdio> #include<algorithm&g ...
- [洛谷P2197]nim游戏
题目大意:Nim游戏.地上有n堆石子,每人每次可从任意一堆石子里取出任意多石子,不能不取,且每次只能从一堆里取.没石子可取的人输.问是否存在先手必胜的策略. 题解:Nim游戏有一个定理,就是当所有棋子 ...
- CF762E Radio Stations
题目戳这里. 我还以为是KDtree呢,但是KDtree应该也可以做吧. 这是一道数据结构好题.考虑到由于\(K \le 10\),所以我们用两个大vector--\(Left,Right\),\(L ...
- vue的nextTick的实现
vue的nextTick是用浏览器支持的方法模拟nodejs的process.nextTick 老版本的vue用如下方法来模拟 Promise.thenMutationObserver(Mutatio ...
- 大学本科毕业论文——LanguageTool语法校正规则库的开发
原创率超高的毕业论文,基本没有太多抄袭的东西,论述观点完全是1年半前的我的想法,或许bug很多,仅作发布参考,不作讨论. 参考预览图: 只读pdf版本下载地址: http://download.csd ...
- vector 进阶
http://classfoo.com/ccby/article/jnevK #include <iostream> #include <vector> #include &l ...
- POJ2912:Rochambeau(带权并查集)
Rochambeau Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 5208 Accepted: 1778 题目链接:h ...
- bzoj 4880 [Lydsy1705月赛]排名的战争 贪心
[Lydsy1705月赛]排名的战争 Time Limit: 8 Sec Memory Limit: 256 MBSubmit: 338 Solved: 69[Submit][Status][Di ...
- Socket和ServerSocket学习笔记
对于即时类应用或者即时类的游戏,HTTP协议很多时候无法满足于我们的需求.这会,Socket对于我们来说就非常实用了.下面是本次学习的笔记.主要分异常类型.交互原理.Socket.ServerSock ...