Neue Objekte auf hinterer Ebene erstellen?

  • GM 8

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

  • Neue Objekte auf hinterer Ebene erstellen?

    Hallo,
    ich habe mehrere Ebenen bei meinem Top-Down Game, unter anderem sind vorne Bäume, so dass man mich nicht sehen soll wenn ich unten durch laufe und den Spieler. Ich muss allerdings den Spieler einmal löschen (destroy the instance) und ein neues objekt an der selben Stelle estellen (create instance of object ...). Das Problem ist allerdings, dass das neu erstellte Objekt (ein anderer Spieler) auf der obersten Ebene ist und somit der Spieler über die Bäume laufen kann. Weiß jemand wie ich das neu erstellte Objekt auf die gleiche Ebene bekomme wie das vorherige Objekt? Wichtig: Nicht auf die hinterste sondern auf eine Ebene die irgendwo in der Mitte ist!

    Schonmal danke, ich hoffe ihr versteht die Frage ;)
  • NicoM schrieb:

    Hallo,
    ich habe mehrere Ebenen bei meinem Top-Down Game, unter anderem sind vorne Bäume, so dass man mich nicht sehen soll wenn ich unten durch laufe und den Spieler. Ich muss allerdings den Spieler einmal löschen (destroy the instance) und ein neues objekt an der selben Stelle estellen (create instance of object ...). Das Problem ist allerdings, dass das neu erstellte Objekt (ein anderer Spieler) auf der obersten Ebene ist und somit der Spieler über die Bäume laufen kann. Weiß jemand wie ich das neu erstellte Objekt auf die gleiche Ebene bekomme wie das vorherige Objekt? Wichtig: Nicht auf die hinterste sondern auf eine Ebene die irgendwo in der Mitte ist!

    Schonmal danke, ich hoffe ihr versteht die Frage ;)

    GML-Quellcode

    1. obj=instance_create(x,y,deinobjekt);
    2. obj.depth=depth;

    So vielleicht?

    Oh verdammt, du bist ja D&D-Einsteiger.
    Naja, füg' einfach den Code so ein und veränder ihn wie du willst, das kriegst du hin. :)
  • Danke für deine Hilfe, leider wird der Spieler immer noch auf die vorderste Ebene gesetzt. Muss man an der zweiten zeile auch noch etwas einfügen oder nur den Namen vom Spieler, also "deinobject" ändern?
  • Oh, nein. Wenn man die Objekte in einen Raum setzt werden sie ja ganz vorne hingesetzt, dann kann man mit rechtsklick auswählen, "send to back" oder "bring to front". Das habe ich damit gemeint. Das Objekt das ich erst später erstelle soll also nicht "in the front" sein :D
    Mit Variablen usw. habe ich da nichts gemacht
  • Mein PC und damit auch das Spiel haben zwar den Geist aufgegeben aber trotzdem würde mich mal interessieren ob noch jemand ein Antwort hat bzw. überhaupt kapiert was ich meine :D Wenn ich auf dem anderen PC mal wieder ein anderes Spiel anfange brauche ich das sicher wieder. War ja Gott sei dank noch nicht weit ^^
  • NicoM schrieb:

    Hallo,
    ich habe mehrere Ebenen bei meinem Top-Down Game, unter anderem sind vorne Bäume, so dass man mich nicht sehen soll wenn ich unten durch laufe und den Spieler. Ich muss allerdings den Spieler einmal löschen (destroy the instance) und ein neues objekt an der selben Stelle estellen (create instance of object ...). Das Problem ist allerdings, dass das neu erstellte Objekt (ein anderer Spieler) auf der obersten Ebene ist und somit der Spieler über die Bäume laufen kann. Weiß jemand wie ich das neu erstellte Objekt auf die gleiche Ebene bekomme wie das vorherige Objekt? Wichtig: Nicht auf die hinterste sondern auf eine Ebene die irgendwo in der Mitte ist!

    Schonmal danke, ich hoffe ihr versteht die Frage ;)
    Hi :)

    "End Step" Event

    GML-Quellcode

    1. depth = -y;


    Dieser kleine Code setzt sämtliche Objekte/Instanzen, die auf dem Bildschirm unter dem anderen sind, automatisch nach vorne - egal, wie du sie vorher im Raum gesetzt hast. Gib allen Objekten diesen Code, bei denen du das haben willst oder bei einem Parent, welches du den Objekten zuordnest, wenn du das nicht überall haben willst.

    Eventuell hilft dir das schon mal weiter. :)

    GML-Quellcode

    1. if ! (freedom) { instance_destroy(gamemaker); instance_create(x, y, html5); }