Wie wechsle ich Sprite nach Bedarf bei Mausklick

  • GM 8

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

  • Wie wechsle ich Sprite nach Bedarf bei Mausklick

    Hallo liebe Community, das ist mein erster Besuch hier und ich habe eine Frage an euch:
    Ich habe vor, in GameMaker 8 ein kleines Spiel zu programmieren, in dem man Punkte durch klicken die Farbe wechseln lassen kann.
    Das Ursprungssprite ist schwarz, ich habe ein Objekt names "Licht" erstellt, darin ein Event: "left Mouse klicked"
    Jetzt habe ich eine "Execute Code" eingefügt. Dieser soll überprüfen, ob das Objekt von der Maus berührt wird und, wenn positiv, sein Sprite ändern.

    Das Ganze sieht so aus:

    d = point_distance(mouse_x, mouse_y, self.x + (self.sprite_width/2), self.y + (self.sprite_height)/2)
    if (d < self.sprite_width/2) {
    sprite_index=Laternen_an
    }

    Das funktioniert auch. Jetzt zu meinem Problem: Ich möchte, wenn das Sprite geändert hat, durch erneutes Klicken wieder das alte Sprite anzeigen lassen.
    Dabei soll natürlich auch wieder die Mausabfrage gemacht werden und der ganze Block sollte sich wiederholen, so dass man bei Bedarf die Farbe des Sprites erneut ändern kann.

    Ich habe leider weder Kentnisse über die GameMaker Language, noch langjährige Erfahrung mit GameMaker....

    Ich hoffe, ich habe mich verständlich ausgedrückt und freue mich auf Hilfe :)

    Gruss LDB
  • Ich würde einfach einen Sprite verwenden mit 2 Bildern [1. Nicht angeklickt, 2. angeklickt].
    Dann würde ich das so machen:
    :event_create: //Create-Event

    GML-Quellcode

    1. clicked = 0


    :event_mouse: //Left-Pressed-Event

    GML-Quellcode

    1. if(clicked == 0){clicked = 1}else{clicked = 0} // wenn clicked gleich 0 ist ( aus ) wird es angeschaltet , wenn es an ist wird es ausgeschaltet

    (irgendwas läuft da mit der Linien-Trennung schief...)

    :event_draw: //Draw-Event

    GML-Quellcode

    1. draw_sprite(sprite_index,clicked,x,y) // Zeichnet den Sprite mit der Variable clicked als image_index// clicked ist in dem Fall das selektierte Bild. Wenn clicked dem Wert 1 entspricht wird das 2 Bild genommen ( 1 Bild = image_index 0, 2 Bild = image_index 1 usw...)



    hoffe das hilft.
    MfG.