Objekt/Variable reagiert nicht....

  • GM 8

    Objekt/Variable reagiert nicht....

    Arbeit zur Zeit an einem kleinen Crafting-System und komme bei einem recht simplen Code nicht weiter.
    Ich schreibe also folgenden Code in das "Left Mouse Button"- Event eines Objektes:

    Quellcode

    1. drag = 1;
    2. sprite_index = nagel_drag;


    Ergebnis: Es funktioniert, Variable ändert sich und Sprite wird geändert wenn ich drauf klicke.

    Verwende ich aber folgenden Code, um das ganze durch einen zweiten Klick wieder rückgängig zu machen, reagiert gar nicht....die Variable "drag" bleibt auf 0 und das Sprite ändert sich nicht, egal wie oft ich klicke.

    Quellcode

    1. if drag = 0
    2. { drag = 1;
    3. sprite_index = nagel_drag;
    4. }
    5. if drag = 1
    6. {drag = 0;
    7. sprite_index = nagel_un;
    8. }


    Was muss ich ändern? Falls nötig kann ich die ganze .gm81-Datei hochladen....
    Die zweite if-Abfrage muss eine "else if-Abfrage" sein.
    Denn aktuell fragst du ab ob drag==0 ist. Wenn dies zustimmt wird drag=1 gesetzt.
    Wenn du dann abfragst ob drag==1 ist, stimmt das natürlich auch und drag wird wieder auf 0 gesetzt.
    Deshalb bleibt auch das Sprite gleich.
    Setze also vor das zweite if das Wörtchen else.
    Dann wird die zweite Abfrage nur ausgeführt, wenn die erste falsch war.
    Problem ist, dass drag auf 1 gesetzt wird und anschließend getestet wird ob drag 1 ist. Die Lösung wäre ein else if.

    GML-Quellcode

    1. if(drag == 0) {
    2. drag = 1;
    3. sprite_index = nagel_drag;
    4. } else if(drag == 1) {
    5. drag = 0;
    6. sprite_index = nagel_un;
    7. }


    Oder in diesem Fall ginge das auch so:

    GML-Quellcode

    1. if(drag == 0)
    2. sprite_index = nagel_drag;
    3. else
    4. sprite_index = nagel_un;
    5. drag = !drag;