Ich habe dieses Sprite: spr_meteoriteLv3
, die zwei Teilbilder mit Index image_index
0 und 1 hat.Game Maker - Maus Klicken Sie auf image_index Überprüfung
Ich habe diese Objekte: obj_meteoriteLv3
, obj_tempMeteoriteLv3
und obj_score
. Objekt obj_meteoriteLv3
erscheint von oben mit zufälliger Position, zufälliger Menge und zufälligem Unterbild. Objekt obj_tempMeteoriteLv3
macht obj_meteoriteLv3
s spawn. Wenn der Spieler auf einen Meteoriten klickt, überprüft das Programm den Wert image_index
für dieses Objekt.
obj_meteoriteLv3
hat diese Ereignisse:
Event erstellen: Änderung sprite_index
in spr_meteoriteLv3
und beginnen nach unten zu bewegen.
Links gedrückt Mausereignis: zerstören die self
Instanz und überprüfen image_index
: wenn image_index == 0
dann score += 5
; sonst score -= 5
).
obj_tempMeteoriteLv3
hat diese Ereignisse:
Event erstellen: set Alarm 0-3600, Variable exist
auf 1 und variable add
bis 1.
Alarm 0 gesetzt: Variable add
zu 0, und zerstöre die obj_meteoriteLv3
Instanz.
Alarm 1: Setvariable exist
auf 1
Schritt Ereignis: wenn (exist == 1)
dann, wenn (add == 1)
dann Instanz obj_meteoriteLv3
erstellen, setzen variable exist
auf 0 und eingestellt Alarm 1 bis 10.
obj_score
hat diese Ereignisse:
Ereignis erstellen: set score
zu 0.
Zeichnen Ereignis: Zeichnen Sie den Wert score
.
Das Problem ist, egal welches Teilbild der Meteorit image_index
hat, wenn er angeklickt wird, wird der Punktestand immer um 5 Punkte erhöht. Es ist wie die else
Bedingung funktioniert nicht. Wie kann ich das beheben? Bitte erläutern Sie Ihre Antwort. Vielen Dank.
Ich füge ein paar Bilder zum besseren Verständnis. Link 1. Link 2
Zuerst möchte ich sicherstellen Ich mache es richtig. Ich verschiebe alle 'image_index'-Prüfbedingungen auf' Destroy Event'. Also, ich habe nur "Destroy-Instanz" -Aktion in "Links-gedrücktes Mausereignis". Meinst Du das? Das Programm funktioniert nicht richtig. Ich habe den Meteoriten nicht angeklickt, aber der Punktestand ist inkrementiert. Auch wenn der Cursor nicht über dem Meteoriten schwebt, wird die Punktzahl erhöht. –
Es erzielte, wenn sie out-of-bounds sind, missverstanden. Verschiebe alles im Destroyer Event zurück zum Linksklick Event und verschiebe "Destroy instance" ganz nach unten – William
Ich habe das ausprobiert und es hat keinen Unterschied. Wenn ich das Alarmereignis nach 2 Minuten benutze, hören die Meteoriten nicht auf zu laichen. Also habe ich var 'add' und' exist' verwendet –