Wand Animation aktivieren wenn Spieler draufsteht

  • GM 8

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

  • Wand Animation aktivieren wenn Spieler draufsteht

    Hallo,

    Ich wollte in meinen 2D Jump and Run Spiel platten/wände die zerbröseln sobald der spieler draufsteht.
    Ich hab dazu eine Animation angefertig die starten soll wenn der spieler draufsteht aber das geht leider
    nur wenn ich bei der Wand Solid weglassen soll.Ohne Solid kann mein Spieler nicht auf der Wand draufstehen. :|
    Hat einer eine Idee? :)

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von subteam ()

  • Lass die Böden solid und benutz vieleicht anstelle der Kolisions-Event die Funktion collision_point. Damit kannst du prüfen ob an einem Punkt unter den Füssen des spielers solch ein zerbröselnder Block ist und hast durch die Funktion gleich auch dessen ID um z.B. mit image_speed die Animation zu starten.

    Willst du auf diese Drachen und -eier klicken?
    Sie werden sich freuen ;)
  • mach doch :
    wenn wand centriert ist:

    GML-Quellcode

    1. if place_meeting(x+sprite_width+1,y+sprite_height+1,obj_wand)

    und sonst das:

    GML-Quellcode

    1. if place_meeting(x,y+1,obj_wand)
    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
  • Hi
    Es ist zwar etwas spät.
    Hier ist mal mein Lösungsvorschlag. Das habe ich für bein Jump & Run-Spiel verwendet.

    im Create der Mauer die verschwinden soll.

    GML-Quellcode

    1. {
    2. pos_x = 0; // Variabel für X-Koordinate der Mauer
    3. pos_y = 0; // Variabel für Y-Koordinate der Mauer
    4. Verzoegerung = 0; // Variabel für die Verzgerung der Mauer, bis sie gelöscht wird
    5. }


    Im Step der Mauer

    GML-Quellcode

    1. {
    2. if (place_meeting(x,y-1,obj_player)) with (other)
    3. {
    4. pos_x = other.x; // hier werden die X-Koordinate der Mauer, wo sich gerade der Player befindet
    5. // zwischen gespeichert
    6. pos_y = other.y; // Analog das selbe für die Y-Koordinate
    7. if (Verzoegerung < room_speed * 0.4) // Anzahl Sekunden der Verzögerung
    8. {
    9. Verzoegerung += 1; // Hier wird die Variabel Verzögerung um 1 Punkt nach oben gezählt, solange
    10. // sie kleiner als 12 ist (room_speed*0.4 - room_speed ist allgemein auf 30
    11. // eingestellt
    12. }
    13. else if (Verzoegerung >= room_speed * 0.4) // Wenn sie wie in unseren Fall grösser oder = 12 ist
    14. // führe die Codes in der geschweiften Klammer aus
    15. {
    16. instance_destroy();
    17. instance_create(pos_x,pos_y,obj_Mauer_02);
    18. Verzoegerung =0;
    19. }
    20. }
    21. }
    Alles anzeigen

    Diesen Code habe in vier Mauer-Objekte verwendet, wobei der Befehl "instance_create(pos_x,pos_y,obj_Mauer_..);" immer das nächste Mauer-Objekt erstellt.
    in dem lestzen Mauer-Objekt läst du diesen Befehl einfach weg. Somit fällt der Player runter, da keine Mauer mehr da ist.
    Ach ja alle Mauer-Objekte sind solide.

    Gruss Drachen