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 = 10Das 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) # 150Ein 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.
Aufgabe
EinfachDas 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.
- Deklariere auf der obersten Ebene des Skripts ein Enum namens
Difficultymit den OptionenEASY(Wert1),NORMAL,HARDundNIGHTMARE(Wert10). WeiseNORMALundHARDkeinen eigenen Wert zu, damit ihre Werte vonEASYaus weitergezählt werden. - 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: 120Probier 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
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Logik & Ablaufsteuerung
1Strings im Detail
String-MethodenIn Strings suchenErsetzen und TrimmenAufteilen und ZusammenfügenRückblick – Benutzernamen prüfen4Wörterbücher Teil 2
Verschachtelte WörterbücherArrays aus WörterbüchernWörterbücher zusammenführenWörterbücher kopierenWiederholung – Häufigkeitszähler10Fortgeschrittene Funktionen
Mehrere Werte zurückgebenLambda-Funktionen Teil 1Lambda-Funktionen Teil 2Wiederholung – Sortieren mit LambdaRekursive Funktionen Teil 1Rekursive Funktionen Teil 2Wiederholung – Verschachteltes Array summieren13Inventarverwaltungssystem
ProjektübersichtArtikel hinzufügen2Fortgeschrittene Entscheidungsfindung
Match mit VariablenMatch-GuardsArray-MusterDictionary-MusterMitgliedschaftsprüfungenRückblick – Befehlsparser5Kontaktbuch-Anwendung
Menü anzeigenKontakt hinzufügen8Schülerdatenverwaltung
ProjektübersichtSchüler hinzufügen3Mehrdimensionale Arrays
Grundlagen zu 2D-ArraysAuf Elemente in 2D-Arrays zugreifenVerschachtelte Schleifen mit 2D-ArraysWiederholung – 2D-ArraysGezackte ArraysGängige Muster für 2D-ArraysWiederholung – Spielbrett6Mengen mit Dictionaries
Was ist eine Menge?Dictionary als MengeHinzufügen und EntfernenVereinigung und SchnittmengeMengendifferenzWiederholung – Duplikate entfernen9Fortgeschrittene Datenaggregation
Werte summierenMinimum und Maximum findenBenutzerdefiniertes SortierenRückblick – Wörterbuch-Sortierer12Einfache Fehlerbehandlung
Was ist Fehlerbehandlung?Eingaben validierenGuard ClausesFehlercodes zurückgebenRückblick – Sichere DivisionÜbe selbstständig: Online-GDScript-Compiler