Menu
CoddyTech

Definir una enumeración

Parte de la sección Lógica y flujo del Journey de GDScript de Coddy. Lección 38 de 78.

Una declaración de enumeración es la palabra clave enum, un nombre y las opciones entre llaves, separadas por comas. La guía de estilo de Godot escribe el nombre en PascalCase y las opciones en CONSTANT_CASE:

enum Direction { NORTH, EAST, SOUTH, WEST }

En una enumeración larga, puedes poner una opción por línea. Se permite una coma después de la última opción:

enum Weapon {
	SWORD,
	BOW,
	STAFF,
}

Puedes elegir el valor de una opción con =. Una opción sin valor obtiene el valor de la opción anterior más 1:

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

El enum también es un tipo. Una variable declarada con él contiene una de sus opciones:

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

Un script puede declarar varias enumeraciones, cada una con su propio nombre. Si omites el nombre, como en enum { LEFT, RIGHT }, las opciones se convierten en constantes del script y escribes LEFT sin prefijo.

challenge icon

Desafío

Fácil

El programa lee el daño base de un enemigo (un número entero). En las dificultades más altas, el enemigo golpea con más fuerza: el daño es el daño base multiplicado por el valor de la dificultad.

  1. En el nivel superior del script, declara un enum llamado Difficulty con las opciones EASY (valor 1), NORMAL, HARD y NIGHTMARE (valor 10). No asignes valores propios a NORMAL ni a HARD, para que continúen la cuenta a partir de EASY.
  2. Imprime el daño para cada dificultad, uno por línea, usando las opciones del enum en el cálculo.

Para la entrada 12, la salida es:

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

Pruébalo tú mismo

extends Node

# Declara el enum Difficulty aquí

func _ready():
	var base_damage := int(OS.read_string_from_stdin())
	# Imprime el daño para cada dificultad
	pass
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Lógica y flujo

Practica por tu cuenta: Compilador de GDScript online