Wie definiert man, ob ein Objekt vor oder hinter dem Spieler-Sprite ist?

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

  • Wie definiert man, ob ein Objekt vor oder hinter dem Spieler-Sprite ist?

    Guten Abend,
    entschuldigt bitte, falls die gesuchte Information bereits hier irgendwo zu finden ist - ich habe die Suchfunktion genutzt und auch in die Einsteigerreferenz geschaut, außerdem auf anderen Seiten gesucht - leider ohne Erfolg.

    Meine Frage: Wie kann man definieren, ob ein Sprite bzw. ein Objekt vor oder hinter dem Spieler ist, d.h. die Spielerfigur verdeckt wird oder "vor" dem anderen Sprite vorbeigehen kann?

    Zum Hintergrund: Ich lerne gerade u.a. mit der Masterclass von Yannick die Sprache GML, um einen simplen Platformer zu erstellen. Meine drei Kinder sollen sich darin selbst spielen können. Hintergedanke: Vielleicht sind sie neugierig darauf zu erfahren, wie man programmiert.
    Ich selbst habe zuletzt als Jugendlicher ein wenig programmiert, ist schon über 20 Jahre her. Also seid bitte nachsichtig, wenn ich hier scheinbar dämliche Fragen stelle...

    Beste Grüße
  • Hi @gamer-dad, willkommen im Forum :)

    Ist das Spiel in Topdown?

    Falls du mit direction und speed arbeitest, kannst du die Funktionen point_direction und point_distance nutzen.

    Mit der Distanzabfrage überprüfst du, wie man das andere Objekt ist -> auf dem Spieler oder nicht
    Mit der Richtungsabfrage kannst du dann schauen, in welchem Winkel das andere Objekt zu dem Spieler steht.
    Mit der Differenz: abs(Spielerrichtung - Objektrichtung)
    Kannst du dann ausrechnen, wie das Objekt zum Sichtfeld ausgerichtet ist.
    180 bedeutet genau dahinter, 0 genau davor. Alles darum ist Halt neben dem Spieler.

    Falls du weitere Hilfe benötigst, sag Bescheid ;)

    Liebe Grüße:)
    Ein Bug ist mehr als nur ein Bug, es ist ein... Käfer!
    Egal, wie gut du eine Mauer baust, sie fällt um.... der klügere gibt nach :D

    Willst du mit mir auf Discord Chatten/Quatschen?
    Meine Husi's Tutorial Reihe
  • Ich glaube er möchte nur wissen, wie er die Draw-Reihenfolge festlegen kann.
    GMS 1.4 und älter hat mit der depth variable gearbeitet, je kleiner diese ist, desto weiter "vorne" erscheint das Objekt.
    GMS 2 unterstützt aus Kompatibilitätsgründen ebenfalls depth, aber arbeitet darüberhinaus ähnlich wie man es von Photoshop kennt mit Ebenen, welche man nutzen kann um die Objekte und Dekosprites zu sortieren.
  • Ah ok ups,
    Nachtrag: Falls die depth gleich ist, wird das Objekt mit der größeren ID weiter oben.
    Ein Bug ist mehr als nur ein Bug, es ist ein... Käfer!
    Egal, wie gut du eine Mauer baust, sie fällt um.... der klügere gibt nach :D

    Willst du mit mir auf Discord Chatten/Quatschen?
    Meine Husi's Tutorial Reihe