Verzögerungsproblem bim Boulder Dash

  • Verzögerungsproblem bim Boulder Dash

    Hallo an alle

    Hab mal wieder ein kleines Problem bei meinen Spiel Boulder Dash und zwar folgendes.
    Ich möchte beim anschieben der Felsbrocken eine Verzögerung einbauen. Sprich eine Art Reibungskraft. Der Spieler soll erst
    nach 1 bis 2 Sec. den Felsbrocken bewegen können. In der Hilfe habe ich in der Art leider nichts gefunden.
    Hier ist mal der Code für das verschieben der Felsbrocken den ich bis jetzt habe.
    Im Script ist noch bei Applies to Other eingestellt und das ganze steht beim Collisions Event vom obj_Boulder_steht

    GML-Quellcode

    1. /////////////////////////////////////////
    2. // Felsbrocken horizontal verschieben //
    3. /////////////////////////////////////////
    4. {
    5. if (obj_Boulder_steht.hspeed == 0 ) exit;
    6. if ( place_empty(x+obj_Boulder_steht.hspeed,y) )
    7. {
    8. x += obj_Boulder_steht.hspeed;
    9. // sound_play(snd_block);
    10. }
    11. }
    Alles anzeigen


    So weit klappt das mit dem verschieben der Felsbrocken wunderbar. Aber das mit der Verzögerung bekomme ich einfach nicht den Griff. Habe es auch mit Alarm versucht. Hat bei mir nicht geklappt. Hab das gefühl gehabt das der Alarn nie ausgelöst worden ist. So jetzt hoffe ich, das irgent einer eine Lösung für mein Problem weis.
    Bis dahin euer Drachen :)
  • Hallo Drachen

    Create:

    GML-Quellcode

    1. zaehler = 0;


    Collision-Event:

    GML-Quellcode

    1. if (zaehler < room_speed * 2) // Anzahl Sekunden der Verzögerung
    2. {
    3. zaehler += 1;
    4. }
    5. else if (zaehler >= room_speed * 2) // Anzahl Sekunden der Verzögerung
    6. {
    7. //Hier dein Code einsetzen
    8. }


    (Code ist ungetestet, sollte aber funktionieren)

    EDIT:
    Fehler korrigiert (danke, lolliger_joj ;) )!

    Achja, die Variable zaehler musst du nach dem Verschieben des Blocks wieder auf 0 stellen, damit es geht!


    MfG flogy

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von flogy ()

  • hi flogy

    Vielen Dank für deien Code. Es klappt prima.
    So damit es ein weiteres Problem gelöst. Die nächsten warten schon.

    Gruss euer Drachen :)

    zu lolliger

    Da ich eine collision auslöse, wird der Zähler immer weiter hoch gezähl.
    Du kannst es ja mal im Debug mode verfolgen.

    Und somit ist mein Problem gelöst