Objekt/Sprite auf "einer" Geh-Ebene interagierbar, dahinter\davor zum BG/FG sprite machen.

  • GM 7

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

  • Objekt/Sprite auf "einer" Geh-Ebene interagierbar, dahinter\davor zum BG/FG sprite machen.

    Guten Tag!

    Also, ich denke es müsste möglich sein, nur komme ich im Moment nicht darauf, wie ich das anstellen soll, Mangel an Wissen.
    Ich möchte eine Fake-3D Landschaft anfertigen, gezeichnet, ähnlich den alten sidescrolling Beat-Em'Ups, wie Final Fight.
    Allerdings möchte ich Straßeninhalte, wie Laternen, Bänke, Wände usw. einbauen.
    Das Problem wäre dadurch nun, Game Maker wird die Laterne, zum Beispiel, natürlich 2D warnehmen, also ein vertikaler Strich ohne Tiefe.
    Ich möchte, dass es, wenn man genau davor steht, es interagierbar ist, Bsp.: Gegenspringen, sich daran festhalten usw., allerdings möchte ich natürlich, dass man, wenn man höher auf der Straße geht, man nicht gegen die Laterne geht, wie wenn man genau vor ihr steht, sondern die Laterne zum Foreground Objekt/Sprite wird, und man hinter ihr geht.
    Wenn man vor ihr/darunter daran vorbei geht, sie zum Background Objekt/Sprite wird und man vor ihr vorrübergeht.

    Wie gesagt, ich wüsste jetzt nicht, wie man das so ohne weiteres hinbekommt.
    Villeich das Objekt aus Unter- und Oberteil, mit verschiedenen Eigenschaften aufbauen, das wäre aber sehr umständlich.

    Vielen Dank im Vorraus!
  • Gib der Laterne doch einfach eine Collisionmask genau in dem Bereich, wo sie den Boden berührt (bzw. einfach das Rechteck beim Sprite an der "Wurzel" der Laterne festlegen). Dann kannst Du oben sowohl vor als auch hinter ihr vorbei, aber nicht durch sie durch (sofern Du das Rechteck auch bei den Charakteren an den Füßen setzst).

    Außerdem musst Du jedem festen objekt "depth = -y" im Create-Event geben und jedem beweglichen Objekt im End-Step-Event "depth = -y" setzen. Und schon ist alles richtig. Natürlich musst Du dann noch die Interaktion mit den Objekten proggen, aber das ist eigentlich auch nicht so schwer (einfach beim Knopfdruck prüfen ob an einer bestimmten Position relativ zum Spieler ein bestimmtes Objekt ist oder aber unsichtbare Markierungen setzen, die, wenn der Spieler sich darin befindet, bestimmte Aktionen auslösen (bzw. den Spieler diese aktion auslösen lassen, wenn er sich in einer Markierung befindet).
  • Oder du fragst bei der Kollsion nach beider y-Koordinaten. Falls diese gleich sind (müssen dann natürlich beide den origin zum Beispiel ganz unten haben), dann wird das dementsprechende Event oder was auch immer ausgeführt.

    edit: Da war wohl jemand schneller..
  • kevb0ard schrieb:

    mach doch einfach bei jeder laterne (unten wo sie anfängt) ein kleines unsichtbares 4eck hin durch das der spieler nicht durchgehen kann.

    F4LL0UT schrieb:

    Gib der Laterne doch einfach eine Collisionmask genau in dem Bereich, wo sie den Boden berührt (bzw. einfach das Rechteck beim Sprite an der "Wurzel" der Laterne festlegen). Dann kannst Du oben sowohl vor als auch hinter ihr vorbei, aber nicht durch sie durch (sofern Du das Rechteck auch bei den Charakteren an den Füßen setzst).

    Außerdem musst Du jedem festen objekt "depth = -y" im Create-Event geben und jedem beweglichen Objekt im End-Step-Event "depth = -y" setzen. Und schon ist alles richtig. Natürlich musst Du dann noch die Interaktion mit den Objekten proggen, aber das ist eigentlich auch nicht so schwer (einfach beim Knopfdruck prüfen ob an einer bestimmten Position relativ zum Spieler ein bestimmtes Objekt ist oder aber unsichtbare Markierungen setzen, die, wenn der Spieler sich darin befindet, bestimmte Aktionen auslösen (bzw. den Spieler diese aktion auslösen lassen, wenn er sich in einer Markierung befindet).

    Superdaniel schrieb:

    Oder du fragst bei der Kollsion nach beider y-Koordinaten. Falls diese gleich sind (müssen dann natürlich beide den origin zum Beispiel ganz unten haben), dann wird das dementsprechende Event oder was auch immer ausgeführt.

    edit: Da war wohl jemand schneller..
    Geil, vielen Dank an euch, ist ja doch relativ einfach! :)
    Aber stimmt, daran hatte ich gar nicht gedacht. xD
  • Benutzer online 1

    1 Besucher