Title: Variablen
Course: Creating Games Classroom - Games im Unterricht > Section: Game Play Programming GDevelop (Basic)

In diesem Kapitel werden euch die verschiedenen Variablen in GDevelop vorgestellt und deren Einsatzmöglichkeiten.

In diesem Kapitel geht es um Variablen.

Variablen werden immer dann verwendet, wenn man Informationen über sein Spiel speichern will. Zum Beispiel die Gesundheit der Spielfigur, Gesundheit oder den Punktestand, den man im Spiel erreicht hat.

Dabei unterscheidet man zwischen drei verschiedene Arten von Variablen in GDevelop:

- Scene Variablen, die an eine bestimmte Spielszene gebunden ist, was nützlich ist für Dinge wie den Level Stand

- Objektvariablen, für Informationen, die an bestimmte Objekte gebunden sind, z. B.  Den Wert einer Münze,

- und es gibt globale Variablen, dabei ist die Information der Variable von überall im Projekt zugänglich, z. B. den Benutzernamen den man am Anfang eines Spiels wählt

Beim letzten Mal hatten wir das Problem, dass wir beim Einsammeln einer Münze keine Punktzahl angezeigt bekommen haben.

Das können wir mit Szenen variablen lösen.

Dabei gehen wir zuerst in die Szenen, Einstellungen. Die findet sich oben rechts bei Open Settings unter diesem Icon

Dann klicken wir auf „Add Scene Variable“ und fügen unsere ersten Szenen Variablen hinzu, diese nennen wir Score.

Wir stellen den Typ auf „Number“ und setzen den Wert zunächst auf „0“.

Damit die Anzahl der Münzen gezählt wird, brauchen wir hierfür noch ein Event.

Dafür gehen wir wieder ins Eventsheet und fügen zu unserem Event, bei dem die Spielfigur mit der Münze kollidiert, noch eine weitere Action hinzu, bei der der Wert der Score Variable um 1 erhöht wird, also 1 zu der Variable hinzuaddiert wird.

Dann fügen wir eine neue Action ohne Condition hinzu, die unser Scoreboard, welches auf dem Screen angezeigt wird, ändert.

Danach könnt ihr noch weitere Münzen in die Szene hinzufügen und in der Preview ausprobieren, ob der Zähler funktioniert.

Als Nächstes schauen wir uns Objektvariablen an.

Bis jetzt ist es nämlich so, dass egal welche Münze wir einsammeln, wir es im Event als Action genauso definiert haben, dass der Punktestand genau um den Wert 1 erhöht wird.

Es kann allerdings genauso gut sein, dass wir eine Münze haben, die mehr Wert und somit auch einen höheren Wert als 1 haben kann.

Hierfür müssen wir den Wert des einzelnen Objektes festlegen, und das macht man mit einer Objektvariablen.

Eine Objektvariable legen wir in den Eigenschaften des Objektes an. Ihr könnt dabei entweder auf die Münze doppelklicken, oder ihr könnt im Objekt Panel, per Rechtsklick auf das Münz-Objekt auf „Edit Object variables“ gehen.

Wie vorher auch fügen wir eine neue Variable hinzu, nennen diese allerdings „value“, da die Variable den Wert der Münze definiert. Den Wert der Variablen setzen wir hier auf 1.

Das ganze müssen wir aber auch noch im Eventsheet anpassen. Und zwar ist es jetzt noch so, dass wir zu unserem Score „1“ hinzufügen und nicht den Wert von einer Münze. Deswegen gehen wir auf unsere „Action“, die vorher erstellt haben und ersetzen die „1“, die wir vorher als Value festgelegt haben, mit der Objektvariablen „value“ aus.

Jetzt wird unser Score um den Wert der Münze erhöht.

Auf den ersten Blick hat sich erstmal beim Einsammeln der Münzen in der Preview nichts geändert, aber wenn wir die „Value“ von unserer Münze jetzt ändern, wird unser Score um den Wert der gesammelten Münze erhöht.

Als Nächstes schauen wir uns noch globale Variablen an.

Im Moment ist unsere Punktzahl als Szenen Variable eingerichtet, was bedeutet, dass die Punktzahl nicht in die neue Szene übernommen wird, wenn wir von einer Szene zu einer anderen wechseln. Wenn wir zum Beispiel von Level 1 zu Level 2 wechseln, wird die Punktzahl aus der ersten Szene nicht übernommen.

Globale Variablen fügen wir über den Project Manager in den Game-Settings unter folgendem Icon hinzu.

Danach könnt ihr die Szenen Variable Score, die wir im Event Sheet verwendet haben, mit dem global Variablen Score austauschen.

Zu guter Letzt lernen wir noch Instanzvariablen kennen.

Wir haben bereits den Wert der Münzen als Objektvariable definiert.

Wenn wir aber zum Beispiel eine einzelne Münze nehmen und dieser einen größeren Wert geben wollen, weil wir diese größer gemacht haben als die anderen Münzen, brauchen wir Instanzvariablen.

Die Instanzvariablen findet ihr bei den Objectproperties und könnt dort einzelnen Münzen einen anderen Wert geben.