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 = 10L’é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) # 150Un 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.
Défi
FacileLe 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é.
- Au niveau supérieur du script, déclare un enum nommé
Difficultyavec les optionsEASY(valeur1),NORMAL,HARDetNIGHTMARE(valeur10). Ne donne aucune valeur propre àNORMALetHARD, afin qu’elles continuent à compter à partir deEASY. - 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: 120Essayez 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
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
1Les chaînes de caractères en profondeur
Méthodes des chaînesRechercher dans les chaînesRemplacer et supprimer les espacesDécouper et joindreRécapitulatif - Vérifier un nom d’utilisateur4Dictionnaires, partie 2
Dictionnaires imbriquésTableaux de dictionnairesFusionner des dictionnairesCopier des dictionnairesRécapitulatif - Compteur de fréquence7Énumérations
Qu’est-ce qu’une énumération ?Définir une énumérationValeurs d’une énumérationÉnumérations avec matchRécapitulatif - Feu de circulation10Fonctions avancées
Renvoyer plusieurs valeursFonctions lambda, partie 1Fonctions lambda, partie 2Récapitulatif - Tri avec lambdaFonctions récursives, partie 1Fonctions récursives, partie 2Récapitulatif - Somme d’un tableau imbriqué13Système de gestion des stocks
Présentation du projetAjouter un article2Prise de décision avancée
Correspondance avec des variablesGardes de correspondanceMotifs de tableauMotifs de dictionnaireVérifications d’appartenanceRécapitulatif – Analyseur de commandes5Application de carnet d’adresses
Afficher le menuAjouter un contact8Gestionnaire des dossiers étudiants
Aperçu du projetAjouter un étudiant3Tableaux multidimensionnels
Bases des tableaux 2DAccéder aux éléments d’un tableau 2DBoucles imbriquées avec des tableaux 2DRécapitulatif - Tableaux 2DTableaux irréguliersMotifs courants des tableaux 2DRécapitulatif - Plateau de jeu6Les ensembles avec les dictionnaires
Qu’est-ce qu’un ensemble ?Un dictionnaire comme ensembleAjouter et supprimerUnion et intersectionDifférence d’ensemblesRécapitulatif – Supprimer les doublons9Agrégation avancée de données
Additionner des valeursTrouver le minimum et le maximumTri personnaliséRécapitulatif - Trieur de dictionnairesEntraînez-vous par vous-même : Compilateur GDScript en ligne