码迷,mamicode.com
首页 > 其他好文 > 详细

对象池技术

时间:2015-10-29 16:01:17      阅读:191      评论:0      收藏:0      [点我收藏+]

标签:

在arpg页游场景里面,经常被杀的怪物对象需要反复生成、销毁。频繁的触发垃圾回收会降低游戏运行效率,对象池技术就是为了解决这种问题

对象池特点:

1、聚合有一个容器,该容器装有已生成的对象;

2、封装对象的生成操作;

3、封装对象的销毁操作;

============================================================

==============简单的示例,可以自动扩容的对象池===========================

public class ObjectPool
{
protected var pool:Array = [];

protected var cl:Class;

private var count:int = 0;

public function ObjectPool(c:Class)
{
this.cl = c;
}

/**获取实例*/
public function getObject():*{
if (pool.length > 0){
return pool.pop();
}else{
trace("当前对象数目" + (++count));
return new cl;
}
}

/**回收实例,这里并没有对obj的属性进行处理,建议在回收前自行处理*/
public function recycle(obj:*):void{
pool.push(obj);
}


/**清空*/
public function release():void{
pool = [];
}
}

对象池技术

标签:

原文地址:http://www.cnblogs.com/maomaolw3/p/4920746.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!