Menu
CoddyTech

Ein Enum definieren

Teil des Abschnitts Logik & Ablaufsteuerung der GDScript-Journey von Coddy. Lektion 38 von 78.

Eine Enum-Deklaration besteht aus dem Schlüsselwort enum, einem Namen und den Optionen in geschweiften Klammern, die durch Kommas getrennt sind. Der Godot-Styleguide schreibt den Namen in PascalCase und die Optionen in CONSTANT_CASE:

enum Direction { NORTH, EAST, SOUTH, WEST }

Bei einer langen Aufzählung kann jede Option in einer eigenen Zeile stehen. Ein Komma nach der letzten Option ist erlaubt:

enum Weapon {
	SWORD,
	BOW,
	STAFF,
}

Du kannst den Wert einer Option mit = festlegen. Eine Option ohne Wert erhält den Wert der vorherigen Option plus 1:

enum Difficulty { EASY = 1, NORMAL, HARD, NIGHTMARE = 10 }
# EASY = 1, NORMAL = 2, HARD = 3, NIGHTMARE = 10

Das enum ist ebenfalls ein Typ. Eine damit deklarierte Variable enthält eine seiner Optionen:

var level: Difficulty = Difficulty.HARD
print(level) # 3
print(level * 50) # 150

Ein Skript kann mehrere Enums deklarieren, jedes mit einem eigenen Namen. Wenn du den Namen weglässt, wie in enum { LEFT, RIGHT }, werden die Optionen zu Konstanten des Skripts, und du schreibst LEFT ohne Präfix.

challenge icon

Aufgabe

Einfach

Das Programm liest den Basisschaden eines Gegners (eine ganze Zahl). Bei höheren Schwierigkeitsgraden trifft der Gegner härter: Der Schaden entspricht dem Basisschaden multipliziert mit dem Wert des Schwierigkeitsgrads.

  1. Deklariere auf der obersten Ebene des Skripts ein Enum namens Difficulty mit den Optionen EASY (Wert 1), NORMAL, HARD und NIGHTMARE (Wert 10). Weise NORMAL und HARD keinen eigenen Wert zu, damit ihre Werte von EASY aus weitergezählt werden.
  2. Gib den Schaden für jeden Schwierigkeitsgrad aus, einen pro Zeile, und verwende bei der Berechnung die Enum-Optionen.

Für die Eingabe 12 lautet die Ausgabe:

EASY: 12
NORMAL: 24
HARD: 36
NIGHTMARE: 120

Probier es selbst

extends Node

# Deklariere hier das Enum Difficulty

func _ready():
	var base_damage := int(OS.read_string_from_stdin())
	# Gib den Schaden für jeden Schwierigkeitsgrad aus
	pass
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Logik & Ablaufsteuerung

Übe selbstständig: Online-GDScript-Compiler