나는 많은 다른 유형 (즉, 적, 총알 등)으로 확장 된 Entity 객체 클래스를 사용하는 안드로이드 게임을 만들고 있습니다. 엔티티 유형의 풀을 생성 한 다음 얻은 Entity 객체를 런타임에 필요한 모든 것으로 변환하는 방법이 있습니까 (예 : 글 머리 기호 유형)? 엔티티를 생성자에 인수로 전달하면 올바른 풀의 목적을 무시할 수 있습니까? 예는 다음과 같습니다 :Libgdx에서 객체 풀 사용하기
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);
}
}
} 현재 코드
감사합니다. 나는 당신이 제안한 것과 함께갔습니다 (다른 유형의 다른 풀). – Fenster
굉장! 나도 어쩌면 수영장이있는 공장을 가지고 있다고 생각했지만, 당신은 여전히 다운 캐스팅 문제에 갇혀있을 것입니다. –