首页 > 其他 > 详细

对象池技术

时间:2015-10-29 15:58:23      阅读:308      评论: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
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!