Menu
CoddyTech

Definindo um Enum

Parte da seção Lógica e fluxo do Journey de GDScript da Coddy. Lição 38 de 78.

Uma declaração de enum é composta pela palavra-chave enum, um nome e as opções entre chaves, separadas por vírgulas. O guia de estilo do Godot escreve o nome em PascalCase e as opções em CONSTANT_CASE:

enum Direction { NORTH, EAST, SOUTH, WEST }

Um enum longo pode colocar uma opção por linha. É permitido usar uma vírgula após a última opção:

enum Weapon {
	SWORD,
	BOW,
	STAFF,
}

Você pode escolher o valor de uma opção com =. Uma opção sem valor recebe o valor da opção anterior mais 1:

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

O enum também é um tipo. Uma variável declarada com ele contém uma de suas opções:

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

Um script pode declarar várias enumerações, cada uma com seu próprio nome. Se você omitir o nome, como em enum { LEFT, RIGHT }, as opções se tornam constantes do script, e você escreve LEFT sem um prefixo.

challenge icon

Desafio

Fácil

O programa lê o dano base de um inimigo (um número inteiro). Em níveis de dificuldade mais altos, o inimigo causa mais dano: o dano é o dano base multiplicado pelo valor da dificuldade.

  1. No nível superior do script, declare um enum chamado Difficulty com as opções EASY (valor 1), NORMAL, HARD e NIGHTMARE (valor 10). Não atribua um valor próprio a NORMAL e HARD, para que eles continuem a contagem a partir de EASY.
  2. Exiba o dano para cada nível de dificuldade, um por linha, usando as opções do enum no cálculo.

Para a entrada 12, a saída é:

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

Experimente você mesmo

extends Node

# Declare o enum Difficulty aqui

func _ready():
	var base_damage := int(OS.read_string_from_stdin())
	# Imprima o dano para cada dificuldade
	pass
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Lógica e fluxo

Pratique por conta própria: Compilador de GDScript online