我正在创建一个使用 Entity 对象类的 android 游戏,然后将其扩展为许多不同的类型(即敌人、子弹等)。有没有办法创建一个实体类型的池,然后将获得的实体对象转换为我在运行时需要的任何东西(比如子弹类型)?将实体作为参数传递给构造函数只会破坏池的目的,对吗?下面是一个例子:
public class EntityPool extends Pool<Entity> {
public EntityPool (int initialCapacity, int max) {
super(initialCapacity, max);
}
protected PooledEntity newObject () {
return new PooledEntity();
}
public Entity obtain (int objectType) {
Entity ent = super.obtain();
if (objectType==SOME_OBJECT_TYPE)
//Do something to make ent into that object type
return ent;
}
public class PooledEntity extends Entity {
PooledEntity () {
super(null, 0, 0);
}
public void free () {
EntityPool.this.free(this);
}
}
}