Title: Drei Leben im Spiel einrichten
Course: Creating Games Classroom - Games im Unterricht > Section: Game Play Programming mit Unity

In diesem Kapitel geben wir dem Spieler drei Leben die er verliert wenn er stirbt.

Jetzt wollen wir mal einbauen, dass unser Frosch eine bestimmte Anzahl von Leben hat. Um das zu erreichen, gehen wir zuerst einmal in unser PlayerChackpoints Skript. Dort erstellen wir eine neue Klassenvariable in der wir die Menge an Leben angeben können, die der Frosch hat:

private int lives = 3;

Wir geben dem Frosch mal 3 Leben. Jedes mal, wenn man nun in das Wasser fällt, soll eines dieser Leben verloren gehen. Und wenn alle Leben aufgebraucht sind, startet man am nicht am letzten Checkpoint, sondern ganz am Anfang des Levels. Jedes Mal wenn wir ins Wasser fallen wird die Respawn() Methode ausgeführt. Also können wir hier immer ein Leben abziehen, sobald es passiert. Um ein Leben von der Variablen abzuziehen, fügen wir die folgende Zeilen Code in unserer Respawn() Methode hinzu:

lives = lives - 1 ;

Alternativ können wir stattdessen auch dies schreiben:

lives - -;

Diese Zeilen machen genau dasselbe. Und zwar ziehen sie 1 von dem Wert in der Variablen ab. Nun müssen wir noch eine Abfrage einbauen, in der wir überprüfen, ob wir noch Leben übrig haben oder wir schon bei 0 angekommen sind. Denn dann müssen wir das Level ja von vorne starten. Dafür fügen wir in dieser Methode eine If-Abfrage hinzu:

if (lives > 0)
 {

 }
 else
 {

 }

Wenn wir noch mindestens 1 Leben haben, soll der Frosch beim letzten Checkpoint spawnen. Deshalb schrieben wir in dem Fall das Folgende in die Klammern:

Transform.position = currentCheckpointPosition;

Falls das aber nicht der Fall ist und wir kein Leben mehr übrig haben, soll das Level komplett neu gestartet werden. Um das zu tun, kommt in die Klammern des else Falles diese Zeilen Code:

SceneManager.LoadScene(SceneManager.GetActiveScene().name);

Hier dürfen wir nicht vergessen den SceneManager wieder zu importieren, wie wir das bereits zuvor getan haben. Die komplette Respawn() Methode sieht dann wie folgend aus:

public void Respawn()
 {
      if (lives > 0)
      {
           transform.position = currentCheckpointPosition;
      }
      else {
           SceneManager.LoadScene(SceneManager.GetActiveScene().name);
      }
      lives - -;
 }

Und nun sehen wir im Spiel wie der Frosch dreimal am Checkpoint respawned wenn man stirbt aber beim vierten Mal dann ganz am Anfang.