Kollision + nur EIN MAL ein Event ausführen (Score, erzeugen weiterer Objekte...)

  • GM 8
  • Kollision + nur EIN MAL ein Event ausführen (Score, erzeugen weiterer Objekte...)

    Hi,

    bei Kollision zweier Objekte, soll ein Event abgespielt werden. Aber nur ein mal.

    Beispiel: Bei Berührung mit einem Objekt etwa soll der Score auf +10 gesetzt werden (oder etwa EIN neues Objekt entstehen).
    Aktuell zählt er bei der Kolliosion aber mitunter hunderte Punkte. (bzw. entstehen fünf oder zehn neue Objekte).

    Das eine Objekt ist ein fixierter Stein, das andere soll an allen Seiten daran abprallen.

    Leider weiß ich nicht mal, wie ich das für die Suche formulieren soll... denn in erster Linie geht es ja nicht ums hängen bleiben (habe ich so oft gefunden) sondern darum, wie die Kollision... äh... "gezählt" wird(?).

    Aktuell arbeite ich mit Drag'n'Drop, hab aber keine GML Brührungsängste...
  • Lässt sich recht einfach über eine bedingte Abfrage lösen. In GML sieht das folgendermaßen aus:

    :event_create: Create-Event

    GML-Quellcode

    1. doonce=false; // Der Name ist egal, sollte aber bezeichnend sein. Das macht's für dich einfacher.


    :event_collision: Kollisionsevent

    GML-Quellcode

    1. if (doonce==false){
    2. // alle möglichen sachen, z.b. score+=10;
    3. doonce=true;
    4. }


    In Drag&Drop gibt es die Aktionen :action_ifvariable: und :action_variable: - das erste ist die Abfrage (if variable operator wert), das zweite die Zuweisung (variable = wert). Wie's geht, kannst du dir ganz einfach aus dem Beispielcode transferdenken.
  • Benutzer online 1

    1 Besucher