私は、Entity オブジェクト クラスを使用する Android ゲームを作成しています。これは、さまざまなタイプ (敵、弾丸など) に拡張されます。Entity 型のプールを作成し、取得した Entity オブジェクトを実行時に必要なもの (弾丸型など) に変換する方法はありますか? コンストラクターへの引数としてエンティティを渡すと、プールの目的が正しく無効になりますか? 以下に例を示します。
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);
}
}
}