Schalter bei Collision umschalten

  • Allgemein

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

  • Schalter bei Collision umschalten

    Hallo.
    Ich will nen Hebel machen, der bei berührung umkippt. Bei nochmaliger berührung kippt er auf die andere Seite.
    Also objekt gemacht, ne globale variable (global.var_schalter ) auf 1 gesetzt und bei der berührung auf 2 umsetzen + bild ändern. Falls er auf 2 ist, bei berührung auf 1 setzen.
    Was passiert?
    Schalter ist beim start auf 1.
    Man berührt, er regt sich nicht.
    Man läuft weg und er hebelt wie verrückt hin und her.

    Was kann man da tun?
    Möglichst dnd
  • Ja, das ist logisch, weil du ihn ja in jedem Frame umschaltest. Du müsstest also warten, bis du den Schalter nicht mehr berührst, um das Umschalten wieder frei zu geben.
    Du könntest dem Schalter also z.B. eine Flag geben, eine Boolean Variable, die dafür steht, ob der Schalter momentan berührt wird. Nennen wir sie mal touch und setzen sie im Create-Event des Schalters auf false. Bei dem Code oder Drag-&-Drop Befehl, bei dem du den Schalter umschaltest, prüfst du zunächst, ob diese Variable noch auf false ist und danach setzt du touch auf true:

    GML-Quellcode

    1. if(!touch){
    2. if(global.var_schalter == 1) global.var_schalter = 2; else global.var_schalter = 1;
    3. touch = true;
    4. }
    Jetzt musst du nur noch dafür sorgen, dass diese touch-Variable wieder auf false gesetzt wird, wenn keine Berührung mehr stattfindet. Je nachdem wie du das gemacht hast, bieten sich verschiedene Stellen dafür an. Ich gehe mal davon aus, dass du noch nicht so viel Ahnung hast, und empfehle daher, direkt im obigem Code nach "touch = true;", einen Alarm zu nutzen, etwa alarm[0] = 2; setzen. Und in diesem Alarm-Event (0) setzt du dann wieder touch = false;
    Ich hoffe du konntest mir folgen.