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 = 10O 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) # 150Um 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.
Desafio
FácilO 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.
- No nível superior do script, declare um enum chamado
Difficultycom as opçõesEASY(valor1),NORMAL,HARDeNIGHTMARE(valor10). Não atribua um valor próprio aNORMALeHARD, para que eles continuem a contagem a partir deEASY. - 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: 120Experimente 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
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
1Strings em Profundidade
Métodos de StringBusca em StringsSubstituir e Remover EspaçosDividir e UnirRecapitulação - Verificação de Nome de Usuário4Dicionários - Parte 2
Dicionários aninhadosArrays de dicionáriosMesclando dicionáriosCopiando dicionáriosRevisão - Contador de frequência10Funções Avançadas
Retornando Múltiplos ValoresFunções Lambda Parte 1Funções Lambda Parte 2Revisão - Ordenação com LambdaFunções Recursivas Parte 1Funções Recursivas Parte 2Revisão - Somando Array Aninhado13Sistema de Gerenciamento de Estoque
Visão Geral do ProjetoAdicionar Item2Tomada de Decisões Avançada
Correspondência com VariáveisGuards de CorrespondênciaPadrões de ArrayPadrões de DicionárioVerificações de PertinênciaRevisão - Analisador de Comandos5Aplicativo de Agenda de Contatos
Exibir menuAdicionar contato8Gerenciador de Registros de Alunos
Visão Geral do ProjetoAdicionar Aluno3Arrays multidimensionais
Fundamentos de arrays 2DAcessando elementos de arrays 2DLaços aninhados com arrays 2DRevisão - arrays 2DArrays irregularesPadrões comuns de arrays 2DRevisão - tabuleiro de jogo6Conjuntos com Dicionários
O que é um conjunto?Dicionário como conjuntoAdicionando e removendoUnião e interseçãoDiferença entre conjuntosRevisão - Removendo duplicatas9Agregação Avançada de Dados
Somando ValoresEncontrando o Mínimo e o MáximoOrdenação PersonalizadaRevisão - Ordenador de DicionáriosPratique por conta própria: Compilador de GDScript online