Menu
CoddyTech

Définir une énumération

Fait partie de la section Logique et flux d’exécution du Journey GDScript de Coddy. Leçon 38 sur 78.

Une déclaration d’énumération comprend le mot-clé enum, un nom et les options entre accolades, séparées par des virgules. Le guide de style de Godot écrit le nom en PascalCase et les options en CONSTANT_CASE :

enum Direction { NORTH, EAST, SOUTH, WEST }

Une longue énumération peut placer une option par ligne. Une virgule après la dernière option est autorisée :

enum Weapon {
	SWORD,
	BOW,
	STAFF,
}

Tu peux choisir la valeur d’une option avec =. Une option sans valeur prend la valeur de l’option qui la précède plus 1 :

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

L’énumération est également un type. Une variable déclarée avec ce type contient l’une de ses options :

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

Un script peut déclarer plusieurs énumérations, chacune avec son propre nom. Si tu omets le nom, comme dans enum { LEFT, RIGHT }, les options deviennent des constantes du script, et tu écris LEFT sans préfixe.

challenge icon

Défi

Facile

Le programme lit les dégâts de base d’un ennemi (un nombre entier). Aux niveaux de difficulté plus élevés, l’ennemi frappe plus fort : les dégâts correspondent aux dégâts de base multipliés par la valeur du niveau de difficulté.

  1. Au niveau supérieur du script, déclare un enum nommé Difficulty avec les options EASY (valeur 1), NORMAL, HARD et NIGHTMARE (valeur 10). Ne donne aucune valeur propre à NORMAL et HARD, afin qu’elles continuent à compter à partir de EASY.
  2. Affiche les dégâts pour chaque niveau de difficulté, un par ligne, en utilisant les options de l’enum dans le calcul.

Pour l’entrée 12, la sortie est :

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

Essayez vous-même

extends Node

# Déclare l’énumération Difficulty ici

func _ready():
	var base_damage := int(OS.read_string_from_stdin())
	# Affiche les dégâts pour chaque niveau de difficulté
	pass
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Logique et flux d’exécution

Entraînez-vous par vous-même : Compilateur GDScript en ligne