Aufbau Meshloader-Klasse
-
Hallo,
ich überlege, wie ich eine 3D-Meshloader-Klasse aufbauen soll (JAVA/Android).
Ich möchte die ganzen Load-Funktionen nicht in der Mesh-Klasse haben.
Da die Loader-Funktion ja ein neu erstelltes (Mesh) Objekt zurückgibt, wird es Probleme bei der Vererbung geben:public class Mesh2 extends Mesh{} Mesh2 myMesh = (Mesh2)Loader.Load("filename"); // Fehler!
Ideen:
Fertig initialisierte Mesh-Klasse übergeben - sodass ich auch ein abgeleitetes Objekt übergeben kann. AlsoMeshloader.Load(filename, meshObject);
finde ich aber irgendwie unschön.
Wie könnte man das eleganter lösen?
-
Tachyon-76 schrieb:
Hallo,
ich überlege, wie ich eine 3D-Meshloader-Klasse aufbauen soll (JAVA/Android).
Ich möchte die ganzen Load-Funktionen nicht in der Mesh-Klasse haben.
Da die Loader-Funktion ja ein neu erstelltes (Mesh) Objekt zurückgibt, wird es Probleme bei der Vererbung geben:public class Mesh2 extends Mesh{} Mesh2 myMesh = (Mesh2)Loader.Load("filename"); // Fehler!
Wirres Zeug!
Was soll der Fehler sein?Tachyon-76 schrieb:
Wie könnte man das eleganter lösen?
Wie könnte man was lösen?
-
TyRoXx schrieb:
Wirres Zeug!
Was soll der Fehler sein?java.lang.ClassCastException: Mesh cannot be cast to Mesh2
TyRoXx schrieb:
Wie könnte man was lösen?
Post gelesen?
Tachyon-76 schrieb:
ich überlege, wie ich eine 3D-Meshloader-Klasse aufbauen soll (JAVA/Android).
Ich möchte die ganzen Load-Funktionen nicht in der Mesh-Klasse haben.
...
Wie könnte man das eleganter lösen?
-
Tachyon-76 schrieb:
java.lang.ClassCastException: Mesh cannot be cast to Mesh2
kann es sein dass der loader nur Mesh zuruecktgibt?
du muesstest die ableitung eher andersrum spezialisieren
public class MeshLoader extends Mesh{} Mesh myMesh = myMeshLoader.Load("filename");
-
Ja, Meshloader gibt ein Mesh-Objekt zurück (im Anfangspost kurz beschrieben).
Ich hatte für ein Android Lernprojekt vor, ein Breakout-clone unter OpenGl zu schreiben.
Ich wollte die sichtbaren Spielobjekte(Ball, Paddle, Klötze..) von der Mesh-Klasse abzuleiten.
Ist wohl doch besser, wenn ich eine eigene Klasse für diese Objekte erstelle (z.b. BaseGameobject), die ein Mesh-Objekt beinhaltet.
-
Tachyon-76 schrieb:
Ja, Meshloader gibt ein Mesh-Objekt zurück
dann kannst du es ja nicht auf Mesh2 casten. Du musst sonst Mesh2 zurueckgeben.