Problem bei Pseudo-3D-Engine

  • GM 7

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Problem bei Pseudo-3D-Engine

    Ich versuche, inspiriert von Toshiros Fake-3D-Skript, eine einfache pseudo-3D Engine zu schreiben. Es gibt aber zwei Darstellungsfehler, bei denen ich keine Ahnung hab wo sie herkommen ;(



    Im Stepevent der Wand steht:

    ( :!: Achtung, vorerst Gedankenstütze: golx => Grundriss, oben-links, X-Koordinate / dury => Dach, unten-rechts, Y-Koordinate ;) )

    GML-Quellcode

    1. X = 2*x-obj_player.x;
    2. Y = 2*y-obj_player.y;
    3. golx = x-50;
    4. goly = y-50;
    5. gorx = x+50;
    6. gory = y-50;
    7. gulx = x-50;
    8. guly = y+50;
    9. gurx = x+50;
    10. gury = y+50;
    11. dolx = X-100;
    12. doly = Y-100;
    13. dorx = X+100;
    14. dory = Y-100;
    15. dulx = X-100;
    16. duly = Y+100;
    17. durx = X+100;
    18. dury = Y+100;
    Alles anzeigen


    Im Drawevent der Wand steht:

    GML-Quellcode

    1. draw_set_color(c_white);
    2. draw_rectangle(golx,goly,gurx,gury,true);
    3. draw_text(x,y,X);
    4. draw_text(x,y+20,Y);
    5. draw_rectangle(dolx,doly,durx,dury,true);
    6. draw_triangle(dolx,doly,dorx,dory,golx,goly,false);
    7. draw_triangle(golx,goly,gorx,gory,dorx,dory,false); //hintere Wand
    8. draw_triangle(golx,goly,gulx,guly,dolx,doly,false);
    9. draw_triangle(gulx,guly,dulx,duly,dolx,doly,false); //linke Wand
    10. draw_triangle(gulx,guly,gury,gury,dulx,duly,false);
    11. draw_triangle(gurx,gury,durx,dury,dulx,duly,false); //vordere Wand
    12. draw_triangle(gurx,gury,gorx,gory,durx,dury,false);
    13. draw_triangle(gorx,gory,dorx,dory,durx,dury,false); //rechte Wand
    14. draw_set_color(c_black);
    15. draw_line(golx,goly,dolx,doly);
    16. draw_line(dorx,gory,dorx,dory);
    17. draw_line(gulx,guly,dulx,duly);
    18. draw_line(gurx,gury,durx,dury);
    Alles anzeigen


    Die *.gmk ist im Anhang...

    Bitte um Hilfe :S

    Grüße,
    Logan
    Dateien
    • pseudo-3d.rar

      (14,55 kB, 176 mal heruntergeladen, zuletzt: )
  • Ich zeig Dir mal den einen Fehler:

    13: draw_triangle(gulx,guly,gury,gury,dulx,duly,false);
    14: draw_triangle(gurx,gury,durx,dury,dulx,duly,false); //vordere Wand

    Da muß doch "gurx" stehen.

    Das andere ist etwas schwieriger. Aber ich glube, man muß nur noch die Reihenfolge, in der die einzelnen Teilstücke und Kanten gezeichnet werden, von der Position (relativ zum Spieler) abhängig machen.


    Ansonsten ziemlich cool, Dein Programm. Und verdammt schnell, wenn ich das richtig gesehen habe.

    Dieser Beitrag wurde bereits 10 mal editiert, zuletzt von Melancor ()

  • Riesendank dafür, das war wohl der Fehler, den ich die ganze zeit übersehen hab^^.

    Den anderen hab ich jetzt aber auch schon gefunden:

    20: draw_line(dorx,gory,dorx,dory);

    es muss gurx heißen...

    Und danke :) , aber wie gesagt, ohne Toshiros Script wär ich nicht auf sowas gekommen ;) ...