Menu
CoddyTech

Enum 정의하기

Coddy GDScript 여정의 논리와 흐름 섹션에 포함된 레슨. 78개 중 38번째.

열거형 선언은 키워드 enum, 이름, 그리고 중괄호 안에 쉼표로 구분된 옵션으로 구성됩니다. Godot 스타일 가이드에서는 이름을 PascalCase로, 옵션을 CONSTANT_CASE로 작성합니다:

enum Direction { NORTH, EAST, SOUTH, WEST }

긴 열거형은 각 옵션을 한 줄에 하나씩 배치할 수 있습니다. 마지막 옵션 뒤에 쉼표를 붙여도 됩니다:

enum Weapon {
	SWORD,
	BOW,
	STAFF,
}

=를 사용해 옵션의 값을 선택할 수 있습니다. 값이 지정되지 않은 옵션은 바로 앞 옵션의 값에 1을 더한 값을 갖습니다:

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

열거형도 하나의 타입입니다. 열거형으로 선언된 변수에는 그 옵션 중 하나가 저장됩니다:

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

스크립트는 각각 고유한 이름을 가진 여러 열거형을 선언할 수 있습니다. 이름을 생략하면 enum { LEFT, RIGHT }처럼 옵션이 스크립트의 상수가 되므로 접두사 없이 LEFT라고 작성합니다.

challenge icon

챌린지

쉬움

프로그램은 적의 기본 피해량(정수)을 읽습니다. 더 높은 난이도에서는 적이 더 큰 피해를 입힙니다. 피해량은 기본 피해량에 난이도 값을 곱한 값입니다.

  1. 스크립트의 최상위 수준에서 Difficulty라는 이름의 enum을 선언하고, EASY(값 1), NORMAL, HARD, NIGHTMARE(값 10) 옵션을 지정하세요. NORMAL과 HARD에는 값을 따로 지정하지 않아 EASY부터 이어서 값이 매겨지도록 하세요.
  2. 계산에 enum 옵션을 사용해 각 난이도의 피해량을 한 줄에 하나씩 출력하세요.

입력이 12인 경우 출력은 다음과 같습니다.

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

직접 해보기

extends Node

# 여기에 Difficulty enum을 선언하세요

func _ready():
	var base_damage := int(OS.read_string_from_stdin())
	# 각 난이도별 피해량을 출력하세요
	pass
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

논리와 흐름의 모든 레슨

직접 연습해 보세요: 온라인 GDScript 컴파일러