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. Also

    Meshloader.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.


Log in to reply