Definire un'enumerazione
Fa parte della sezione Logica e flusso del percorso GDScript di Coddy. Lezione 38 di 78.
Una dichiarazione di enum è la parola chiave enum, un nome e le opzioni racchiuse tra parentesi graffe, separate da virgole. La guida di stile di Godot scrive il nome in PascalCase e le opzioni in CONSTANT_CASE:
enum Direction { NORTH, EAST, SOUTH, WEST }Un'enumerazione lunga può mettere un'opzione per riga. È consentita una virgola dopo l'ultima opzione:
enum Weapon {
SWORD,
BOW,
STAFF,
}Puoi scegliere il valore di un'opzione con =. Un'opzione senza valore assume il valore dell'opzione precedente più 1:
enum Difficulty { EASY = 1, NORMAL, HARD, NIGHTMARE = 10 }
# EASY = 1, NORMAL = 2, HARD = 3, NIGHTMARE = 10Anche l'enumerazione è un tipo. Una variabile dichiarata con essa contiene una delle sue opzioni:
var level: Difficulty = Difficulty.HARD
print(level) # 3
print(level * 50) # 150Uno script può dichiarare diversi enum, ciascuno con il proprio nome. Se ometti il nome, come in enum { LEFT, RIGHT }, le opzioni diventano costanti dello script e scrivi LEFT senza prefisso.
Sfida
FacileIl programma legge il danno base di un nemico (un numero intero). Ai livelli di difficoltà più alti, il nemico colpisce più forte: il danno è pari al danno base moltiplicato per il valore della difficoltà.
- Al livello superiore dello script, dichiara un enum chiamato
Difficultycon le opzioniEASY(valore1),NORMAL,HARDeNIGHTMARE(valore10). Non assegnare un valore proprio aNORMALeHARD, così i loro valori proseguono daEASY. - Stampa il danno per ogni livello di difficoltà, uno per riga, usando le opzioni dell'enum nel calcolo.
Per l'input 12, l'output è:
EASY: 12
NORMAL: 24
HARD: 36
NIGHTMARE: 120Provalo tu
extends Node
# Dichiara qui l'enum Difficulty
func _ready():
var base_damage := int(OS.read_string_from_stdin())
# Stampa il danno per ogni livello di difficoltà
pass
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Logica e flusso
1Stringhe in dettaglio
Metodi delle stringheRicerca nelle stringheSostituzione e trimDividere e unireRipasso - verifica del nome utente4Dizionari - Parte 2
Dizionari annidatiArray di dizionariUnire dizionariCopiare dizionariRiepilogo - Contatore di frequenza7Enumerazioni
Che cos'è un'enumerazione?Definire un'enumerazioneValori dell'enumerazioneEnumerazioni in MatchRiepilogo - Semaforo10Funzioni avanzate
Restituire più valoriFunzioni lambda - Parte 1Funzioni lambda - Parte 2Ripasso - Ordinamento con lambdaFunzioni ricorsive - Parte 1Funzioni ricorsive - Parte 2Ripasso - Somma di un array annidato13Sistema di gestione dell'inventario
Panoramica del progettoAggiungere un articolo2Decisioni avanzate
Match con variabiliGuardie di matchPattern per arrayPattern per dizionariVerifiche di appartenenzaRiepilogo - Parser di comandi5Applicazione Rubrica
Visualizzare il menuAggiungere un contatto8Gestione dei registri degli studenti
Panoramica del progettoAggiungi studente11Funzioni di ordine superiore
Il metodo mapIl metodo filterIl metodo reduceany e allRipasso - Validatore di emailRipasso - Elaboratore di numeri3Array multidimensionali
Fondamenti degli array 2DAccedere agli elementi di un array 2DCicli annidati con array 2DRipasso - Array 2DArray frastagliatiSchemi comuni con gli array 2DRipasso - Tabellone di gioco6Insiemi con i dizionari
Che cos'è un insieme?Il dizionario come insiemeAggiungere e rimuovereUnione e intersezioneDifferenza tra insiemiRiepilogo - Rimuovere i duplicati9Aggregazione avanzata dei dati
Somma dei valoriTrovare minimo e massimoOrdinamento personalizzatoRiepilogo - Ordinatore di dizionariEsercitati da solo: Compilatore GDScript online