爆炸效果使用对象池。
在util包创建ExplodesPool。
package util;
import game.Explode;
import java.util.ArrayList;
import java.util.List;
public class ExplodesPool {
public static final int DEFAULT_POOL_SIZE=10;
public static final int DEFAULT_POOL_MAX_SIZE=20;
private static List<Explode> pool =new ArrayList<>();
static {
for(int i=0;i<DEFAULT_POOL_SIZE;i++)
pool.add(new Explode());
}
/**
* 从对象池中获取一个对象
* @return
*/
public static Explode get()
{
Explode explode = null;
//判断对象池是否为空
if(pool.size()==0){
//生成对象
explode =new Explode();
}
else {
//拿走第一个位置上的对象
explode= pool.remove(0);
}
return explode;
}
//归还
public static void theReturn(Explode explode){
if(pool.size()==DEFAULT_POOL_MAX_SIZE)
return;
pool.add(explode);
}
}