INSTANZVARIABLEN VERWENDEN
Instanzvariablen ermöglichen es jedem Monster, seinen eigenen Gesundheitswert zu speichern. Eine Variable ist einfach ein Wert der sich ändern (oder variieren) kann, und sie werden für jede Instanz separat gespeichert, daher der Name Instanzvariable.
Fügen wir unserem Monster eine Gesundheits-Instanzvariable hinzu. Dies funktioniert ähnlich wie das Hinzufügen eines Verhaltens. Klicke auf das Monster in der Projektleiste. Alternativ kannst du über die Reiter oben zurück ins Layout wechseln und ein Monster-Objekt auswählen. Dadurch werden die Eigenschaften des Monsters in der Eigenschaftenleiste angezeigt. Klicke auf Instanzvariablen, um das Dialogfeld Instanzvariablen zu öffnen.
Du kannst einem Objekt beliebig viele Instanzvariablen hinzufügen, aber wir brauchen nur eine für das Monster. Klicke auf Füge neue Instanzvariable hinzu. Zum Hinzufügen einer Instanzvariablen erscheint folgender Dialog.
Gib Health als Namen ein, belasse Typ als Nummer, und gebe als Anfangswert 5 ein (wie gezeigt). Dies startet jedes Monster mit 5 Gesundheit. Wenn sie getroffen werden ziehen wir 1 von der Gesundheit ab, und wenn die Gesundheit null ist zerstören wir das Objekt.
Wenn du fertig bist, klicke auf OK. Beachte, dass die Variable jetzt im Instanzvariablen-Dialog und auch in den Eigenschaften für das Monster erscheint. Du kannst Anfangswerte schnell in der Eigenschaftenleiste ändern, aber um Variablen hinzuzufügen oder zu entfernen, musst du das Dialogfeld Instanzvariablen öffnen. Beachte auch, dass für jedes Objekt im Layout auch eindeutige Instanzvariablen-Werte festgelegt werden können, sodass du beispielsweise jedes Monster mit einer anderen Menge an Gesundheit starten können.
ÄNDERN DER EVENTS
Wechsle zurück zum Eventblatt. Im Moment zerstören wir Monster, sobald die Kugel sie trifft. Ändern wir das, um stattdessen 1 von seiner Gesundheit abzuziehen.
Suche das Event mit der Aufschrift Bullet: In Kollision mit Monster. Beachte, dass wir eine Aktion „Monster zerstören“ haben. Lass uns das durch "Subtrahiere 1 von health" ersetzen. Klicke mit der rechten Maustaste auf die Aktion "Monster Zerstören" und Klicke auf Ersetze Aktion.
Es erscheint das gleiche Dialogfeld wie beim Einfügen einer neuen Aktion, aber dieses Mal ersetzt es stattdessen die Aktion, auf die wir geklickt haben. Wähle Monster►Subtrahiere von (in der Kategorie Instanzvariablen), wähle die Instanzvariable „health“ und gebe 1 als Wert ein. Klicke auf Fertig. Das Event sollte nun so aussehen:
Wenn wir jetzt auf Monster schiessen, verlieren sie 1 Gesundheit und die Kugel explodiert, aber wir haben kein Event erstellt um Monster zu töten, wenn ihre Gesundheit null erreicht. füge ein weiteres Event hinzu:
Bedingung: Monster►Vergleiche Instanzvariable►health,kleiner oder gleich,0
Aktion: Monster►Erzeuge anderes Objekt►Explosion
Aktion: Monster►Zerstören
Warum „kleiner oder gleich 0“ statt „gleich 0“? Angenommen wir haben eine weitere stärkere Waffe hinzugefügt die 2 von der Gesundheit abzieht. Wenn du auf ein Monster hast, würde seine Gesundheit fallen auf 5, 3, 1, -1, -3... Beachte, dass seine Gesundheit zu keinem Zeitpunkt direkt gleich Null war, also würde es niemals sterben! Daher ist es eine gute Praxis, „weniger oder gleich“ zu verwenden, um zu testen, ob die Gesundheit von etwas abgelaufen ist.
Führe das Spiel aus. Du musst Monster jetzt fünf Mal treffen um sie zu töten!