Hi Leute,
ich habe in einer Textdatei die Informationen für ein "Level" gespeichert. Unter anderem sind dort auch die Gegner mit einer eindeutigen ID aufgezählt. Nun möchte ich im Programm mit Hilfe der ID eine Instanz von einer abgeleiteten Klasse von meiner Klasse "Enemy" erzeugen.
Meine Klassen:
Enemy
+------> Skeleton (ID = 1)
+------> Boomer (ID = 2)
+------> Maneater (ID = 3)
Mein Lösungsansatz:
Beim Laden des Levels schaue ich nach welche Klasse zu der gelesenen ID gehört und speicher das Class Object in einer Liste.
Wenn das Level dann "läuft", schaue ich in der Liste nach welches das nächste Element ist und lasse mir mit getConstructor(...).newInstance(...) ein neues Enemy Object erzeugen.
Macht der Lösungsansatz Sinn, in eurem Augen? Oder seh ich den Wald vor lauter Bäumen nicht und es geht viel einfacher???
Danke im Voraus
Scarabol
ich habe in einer Textdatei die Informationen für ein "Level" gespeichert. Unter anderem sind dort auch die Gegner mit einer eindeutigen ID aufgezählt. Nun möchte ich im Programm mit Hilfe der ID eine Instanz von einer abgeleiteten Klasse von meiner Klasse "Enemy" erzeugen.
Meine Klassen:
Enemy
+------> Skeleton (ID = 1)
+------> Boomer (ID = 2)
+------> Maneater (ID = 3)
Mein Lösungsansatz:
Beim Laden des Levels schaue ich nach welche Klasse zu der gelesenen ID gehört und speicher das Class Object in einer Liste.
Java:
LinkedList<Class> enemies = new LinkedList<Class>();
if (ID == 1) {
enemies.add(Skeleton.class);
}
Wenn das Level dann "läuft", schaue ich in der Liste nach welches das nächste Element ist und lasse mir mit getConstructor(...).newInstance(...) ein neues Enemy Object erzeugen.
Java:
try {
Enemy p = (Enemy) enemies.getFirst().getConstructor(Frame.class).newInstance(this);
} catch (.... // jede Menge Exceptions
Macht der Lösungsansatz Sinn, in eurem Augen? Oder seh ich den Wald vor lauter Bäumen nicht und es geht viel einfacher???
Danke im Voraus
Scarabol