3D Object bleibt nicht am Platz

  • Allgemein

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

  • 3D Object bleibt nicht am Platz

    Hallo,
    ich bin an ein eigenartiges Problem im 3D bereich gestoßen. Ich habe vier 3D-Objekte erstellt: obj_Wall, obj_Player, obj_Dummy und obj_Death_Zone.

    In obj_Wall habe ich folgenden Code im Draw-Event:
    Spoiler anzeigen

    GML-Quellcode

    1. d3d_draw_block(x-64, y-64, 64, x+64, y+64, -64, txt_Wall, 1, 1);

    obj_Player sowie obj_Dummy den:
    Spoiler anzeigen

    GML-Quellcode

    1. d3d_transform_set_identity();
    2. d3d_transform_set_rotation_z(-phy_rotation);
    3. d3d_transform_add_translation(x, y, 0);
    4. d3d_draw_block(-64, -64, 64, 64, 64, -64, txt_Player/Dummy, 1, 1);
    5. d3d_transform_set_identity();

    und obj_Death_Zone den:
    Spoiler anzeigen

    GML-Quellcode

    1. d3d_draw_block(x-64, y-64, 0, x+64, y+64, 0, txt_Death_Zone, 1, 1); //Dient zur Visualisierung der Death_Zone

    Bis auf obj_Death_Zone sind alles Physics-Objekte.
    Meine Kamera sieht so aus:
    Spoiler anzeigen

    GML-Quellcode

    1. d3d_set_projection(x, y, _Camera.a*2, x, y-.1, 100, 0, 0, 1);
    2. draw_set_alpha(1);
    3. draw_set_color(c_white);

    _Camera.a ist die Distanz zwischen obj_Player und obj_Dummy.

    Nun habe ich aber das Problem, dass sich obj_Death_Zone bewegt sobald sich die Kamera bewegt. Die drei anderen Objekte bleiben an ihrem Platz.
    Wie kann ich obj_Death_Zone nun auch dazu bringen zu bleiben wo es ist? Der Code ist doch praktisch derselbe wie in obj_Wall.

    Dasselbe gilt für Sprites. Wie bleiben die an Ort und Stelle?

    Freue mich schon auf Antworten.


    -Skotchy
    "Ich sollte schlafen gehen"

    ~Pika-Pika~
  • Dasselbe gilt für Sprites. Wie bleiben die an Ort und Stelle?


    Heißt das, du hast noch andere Objekte? Änderst du irgendwo die Perspektive? Dann kommt es nämlich auch auf die verschiedenen Depths der Objekte an - in welcher Reihenfolge die Draw-Events ausgeführt werden und eben ob du irgendwo die Perspektive änderst. Dann können die Objekte auch mal an scheinbar anderen Orten erscheinen.
  • ghost schrieb:

    Heißt das, du hast noch andere Objekte?

    Jein. Ich habe obj_Death_Zone erst später zum 3D-Objekt geamacht, da es eigentlich nur zur Visualisierung der Death_Zone dient. Da es nicht am Platz bleibt, funktioniert dies aber nicht.

    ghost schrieb:

    Änderst du irgendwo die Perspektive?

    Ich habe nur den Code in der Kamera, um die Perspektive zu ändern.

    ghost schrieb:

    Dann kommt es nämlich auch auf die verschiedenen Depths der Objekte an - in welcher Reihenfolge die Draw-Events ausgeführt werden und eben ob du irgendwo die Perspektive änderst.

    Wo kann ich denn sehen, in welcher Reihenfolge die Draw_Events ausgeführt werden? Und in welcher Reihenfolge müssen sie stehen?

    Danke für die Antwort.


    -Skotchy
    "Ich sollte schlafen gehen"

    ~Pika-Pika~
  • ghost schrieb:


    Hm nein schade, ich dachte du zeichnest eventuell noch eine GUI oder so. Die Depth gibt die Reihenfolge der Draw Events vor. Prinzipiell sollte halt die Kamera eine höhere Depth als alle 3D Objekte haben, damit die 3D Perspektive eingestellt ist bevor 3D-Objekte gezeichnet werden.

    Das ich nicht schon vorher darauf gekommen bin. Die Depth meines Kamera-Objektes ist nun größer und es funktionert jetzt alles so, wie es funktionieren soll.

    Danke!


    -Skotchy
    "Ich sollte schlafen gehen"

    ~Pika-Pika~
  • Benutzer online 1

    1 Besucher