Leben erst nach einer bestimmten Zeit löschen

  • GM 7
  • Leben erst nach einer bestimmten Zeit löschen

    Ich habe ein Spiel erstellt bei dem man Ein Raumschiff durch ein Labyrinth steuern muss. Wenn man die Mauer berührt wird ein Leben abgezogen, allerdingst muss man dann auch ganz schnell wieder von der Mauer weg. Sonst werden alle Liben gelöscht.´

    Wie kann ich das machen, dass ich erst nach einer bestimmten Zeit wieder ein Leben verliere
    Am Anfang standen wir vor einem Abgrund...

    jetzt sind wir schon einen großen Schritt weiter
  • Meno hate gerade den text ok noachmal

    mast du 2 Objekt 1 raumschiff und ein schadenraumschiff

    wen Raumschiff wand Toucht -1 life und dann wecheselt es zum schadenraumschiff( das schadenraumschiff objekt kann dan eine BLinken animaton haben find ich)

    im schadenraumschiff soll ein Step alam 1 und Event Alam rein was dein schadenraumschiff in sagen wir 10 steps wider zu einem nomalen raumschiff macht
    Sorry bin Legastheniker :cursing:

  • Mach doch ein Schild nachdem du ein Leben verloren hast (gibt es in verschiedenen Spielen).

    Einfach in step event:

    GML-Quellcode

    1. if place_meeting(x,y,obj_wand)&&leben_verloren==false
    2. {live-=1; leben_verloren=true; alarm[0]=30}
    3. if leben_verloren==true&&alarm[0]<=0
    4. {leben_verloren=false}
    PULSE

    Zweispieler [||||||||||]
    Einspieler [||||||||||]

    [Die Entgrater ist auf Eis gelegt]
  • Und sollte ich einen von euch (Nicknick und Wilber) noch einmal dabei erwischen, wie ihr einen derartigen Orthografie-genozid begeht schick ich euch den Sohn vom Duden vorbei um seinen Vater zu rächen.
    Der induziert euch dann eure Köpfe rektal so tief, dass ihr Gefahr lauft an euren eigenen Schädeln zu ersticken.
    Hier werden sie geholfen:
    [Regeln] [GML] [Hilfe] [Suche] [Posten] [Duden.de]
    [Wenn das alles nicht mehr hilft] [Dunning-Kruger]


    "Die Vernunft sollte Autorität definieren; nicht umgekehrt!"
    "Selber denken regt das Gehirn an."
    - Niffel f.k.a. Kilik
  • xxskxx schrieb:

    Beim GM musst du jede variable deffinieren...

    Im Create Event von deinem Objekt

    GML-Quellcode

    1. leben_verloren=true;

    ich mach das so lieber wie oben, kannst du auch mit

    GML-Quellcode

    1. var leben_verloren;

    machen
    Ich hoffe aber, dass dir der Unterschied zwischen einer Initialisierung einer Variable mit und ohne var bekannt ist. Wenn du die Variable leben_verloren im Create Event mit var deklarieren und definieren würdest, so würde dies nur im Create Event gültig sein. Variablen, die mit var bzw. globalvar (GM7) initialisiert wurden, gelten nur für einen Step (z.B. Prüfvariablen in einem Skript). Somit wird die Variable im nächsten Step wieder gelöscht und ein Zugriff wäre somit unmöglich.

    Fazit: In diesem Beispiel ist nur die erste Methode richtig.

    Außerdem: Müsste es nicht false sein, weil jedes mal wenn das Raumschiff erstellt wird, gleich ein Leben weniger? :huh:
    Ich hoffe ich hab das Problem jetzt nicht fehlinterpretiert.

    mfg Critical

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

  • @ Critical: Seit wann gilt globalvar denn nur für einen Code? Mit var ist das schon richtig, aber wenn du beispielsweise

    GML-Quellcode

    1. globalvar timer

    schreibst, so wird timer als globale Variable definiert, auf die jedes Objekt zugreifen kann. Der Vorteil ist, dass man nicht andauernd global. dazuschreiben muss, der Nachteil, dass man in anderen Objekten keine lokalen Variablen mit dem namen timer anlegen kann, weil automatisch auf die globalvar zugegriffen wird.
    Aber codebezogen ist sie auf keinen Fall. :)
  • Irrenhaus3 schrieb:

    @ Critical: Seit wann gilt globalvar denn nur für einen Code? Mit var ist das schon richtig, aber wenn du beispielsweise

    GML-Quellcode

    1. globalvar timer

    schreibst, so wird timer als globale Variable definiert, auf die jedes Objekt zugreifen kann. Der Vorteil ist, dass man nicht andauernd global. dazuschreiben muss, der Nachteil, dass man in anderen Objekten keine lokalen Variablen mit dem namen timer anlegen kann, weil automatisch auf die globalvar zugegriffen wird.
    Aber codebezogen ist sie auf keinen Fall. :)


    Das ist so nicht korrekt. Richtig ist, wenn man eine Variable mit globalvar zu einer globalen Variable deklariert, wird diese immer angesprochen, wenn man nur den Variablennamen hinschreibt. Wenn man aber in einem Skript mittels var eine temporäre Variable des selben Namens anlegt, dann wird in diesem Skript auch diese temporäre Variable unter diesem Namen angesprochen.
    Auch kann ein Objekt noch eine lokale Variable dieses Namens enthalten; diese muss dann allerdings innerhalb des Objekts (also auch innerhalb eines with-statements) mit self.variablenname angesprochen werden (und von außen muss man sowieso mit der Instanz-ID arbeiten). *klugshice*