Objekt per Mausklick wechseln

  • GM 8

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

  • Objekt per Mausklick wechseln

    Hallo,
    ich habe eine Frage, die mich schon seit einiger Zeit interessiert. Ich habe in meinem Beispiel zwei Objekte. Wenn man das eine Objekt anklickt, soll es sich in das andere Objekt verändern (also mit instance_change(x,y,object)) und umgekehrt auch. In meinem Beispiel funktioniert es allerdings nur in eine Richtung.

    Vielen Dank für eure Hilfe.
    Dateien
    • Kasten.zip

      (9,32 kB, 95 mal heruntergeladen, zuletzt: )
    I am a in the GM Quiz!
  • Dein Kasten "ausgewählt" hat eine höhere Object-Id als dein weißer Kasten. Das bedeutet anscheinend, dass der GM auch in dieser Reihenfolge nach Events Ausschau hält, die er abarbeiten muss.
    Wenn sich der Kasten von leer zu voll wechselt, geht alles normal. Andersrum wird allerdings auch direkt das Event für den ausgefüllten Kasten ausgeführt. Kurz: Der Kasten verwandelt sich innerhalb eines Steps hin und zurück. Fiese Sache.

    Wie behebt man das? Lass die Finger von instance_change und mach das über image_index (setze image_speed vorher auf null), damit kannste du Einzelbilder ansteuern und brauchst gar nicht zwei Objekte dafür.

    Edit:

    Zur Erklärung:
    Ich habe mir mal Gedanken gemacht, warum es zu diesem Problem kommt. Hier meine Idee:

    Quellcode

    1. für jede Instanz tu {
    2. Frage jedes Objekt "Ist das deine Instanz?" {
    3. Wenn ja, führe für die Instanz den Code aus, der in dem Objekt hinterlegt ist.
    4. }
    5. }

    Dabei ist anzumerken, dass er in beiden Schleifen bei der kleinsten Id anfängt und sich hocharbeitet - daher tritt das Problem auch nur in einer Richtung auf.
    WARUM das anscheinend so gelöst wird (und ob es wirklich so gemacht wird) kann ich nicht sagen. Ich stelle hier nur eine Vermutung an und versuche, die halbwegs schlüssig zu erklären.
  • Vielen Dank für deine Antwort.
    Ich denke du hast Recht, was die Sache mit der Object-ID angeht. Allerdings habe ich das Problem nun wahrscheinlich etwas anders gelöst. Ich habe ein Sprite mit zweit Bildern (einmal leer und einmal mit Kreuz) gemacht und den image_speed auf 0 gesetzt. Jetzt steht im Event für die linke Maustaste

    GML-Quellcode

    1. image_index+=1
    .

    Damit funktioniert es wunderbar.
    I am a in the GM Quiz!