Objekt für bestimmte Zeit anhalten

  • Objekt für bestimmte Zeit anhalten

    Ich habe ein Objekt, welches man steuern kann. Dieses kann mit zig anderen Objekten kollidieren. Macht er das, passiert immer das Gleiche. Ein Leben wird abgezogen und die Figur springt an den Start zurück. Das Problem ist, dass man, wenn man die Taste gedrückt hält, man gleich wieder gegen ein Objekt fliegen und zerstört werden kann.

    Aus diesem Grund möchte ich, dass wenn das Objekt auf Start springt, die gedrückten Tasten erst wieder funktionieren, wenn man losgelassen hat. Außerdem soll die Figur ihre Position für Zeit X beibehalten, ohne das der Spieler in dieser Zeit was machen kann. Die Figur sollte unabhängig von Gravitation etc. in dieser Position bleiben.

    Man könnte Sleep nehmen, aber dann friere ich das ganze Bild ein, dass will ich aber nicht. Was gibt es sonst für Möglichkeiten?
  • Verstehe ich nicht ganz. Blockiert werden soll, wenn man kollidiert ist, also man ein Leben verloren hat. Ich habe es mal mit einem Alarm versucht, hat aber nicht so recht hin gehauen. X(

    Edit: Gibt es eine Funktion, mit der man alle Aktionen der Spielfigur einfrieren kann, ohne alles einzufrieren?

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

  • hm, so einen Ansatz hatte ich schon einmal, aber hat leider nicht recht funktioniert.

    In Create setze ich

    GML-Quellcode

    1. freeze = 0


    Alarm 1 habe ich mal Sleep (zum testen) und

    GML-Quellcode

    1. freeze = 0


    Bei der Kollision habe ich

    GML-Quellcode

    1. freeze = 1


    und im Step habe ich

    GML-Quellcode

    1. if freeze=1
    2. {alarm[1] = 60}
    3. else exit


    Aber es wird nicht mal Sleep ausgeführt. Allerdings will ich ja auch kein Sleep, sondern, dass für eine Zeit X die Tasten Up, Space, Left & Right nicht funktionieren und auch die Gravitation keine Rolle spielt, sonst fällt die Figur in der Zeit runter und man stirbt auch.

    [Zusammengeschoben durch CAS]


    TrunX schrieb:




    keyboard_clear(key) Clears the state of the key. This means that it will no longer generate keyboard events until it starts repeating.

    Vielleicht hilft dir das weiter.
    Das habe ich auch versucht, funktioniert aber leider nicht so richtig. Wenn man die Taste gedrückt hält, fliegt die Figur bei Neustart weiter. Ich brauche auf jeden Fall eine Pause. Vom Gameplay her wäre dann eine Counter sogar gut, der 3, 2, 1 runter zählt.
  • Yamm schrieb:

    hm, so einen Ansatz hatte ich schon einmal, aber hat leider nicht recht funktioniert.

    In Create setze ich

    GML-Quellcode

    1. freeze = 0


    Alarm 1 habe ich mal Sleep (zum testen) und

    GML-Quellcode

    1. freeze = 0


    Bei der Kollision habe ich

    GML-Quellcode

    1. freeze = 1


    und im Step habe ich

    GML-Quellcode

    1. if freeze=1
    2. {alarm[1] = 60}
    3. else exit


    Aber es wird nicht mal Sleep ausgeführt. Allerdings will ich ja auch kein Sleep, sondern, dass für eine Zeit X die Tasten Up, Space, Left & Right nicht funktionieren und auch die Gravitation keine Rolle spielt, sonst fällt die Figur in der Zeit runter und man stirbt auch.
    versuch doch mal

    GML-Quellcode

    1. if (freeze=1) && (alarm[1] = 0)
    2. {
    3. alarm[1] = 60
    4. }
    5. else
    6. {
    7. exit
    8. }



    Das bringt mich gleich zu einer Frage... Alarms werden bei 0 ausgeführt, sind Alarms dann von Spielbegin auf 0?
    oder werden die nach ausführen der ganzen Aktionen auf bsp. -1 gesetzt und/oder sind bei Spielbegin auf -1?
    So far, Schattenphoenix~
    _____________________________________________________________________________
    "Who needs a stairway to heaven...
    If there is an elevator to hell... ?
    "
    - Vergessen
    "Auch ein perfektes Chaos ist etwas vollkommenes."
    - Jean Genet
  • Benutzer online 1

    1 Besucher