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라고 작성합니다.
챌린지
쉬움프로그램은 적의 기본 피해량(정수)을 읽습니다. 더 높은 난이도에서는 적이 더 큰 피해를 입힙니다. 피해량은 기본 피해량에 난이도 값을 곱한 값입니다.
- 스크립트의 최상위 수준에서
Difficulty라는 이름의 enum을 선언하고,EASY(값1),NORMAL,HARD,NIGHTMARE(값10) 옵션을 지정하세요.NORMAL과HARD에는 값을 따로 지정하지 않아EASY부터 이어서 값이 매겨지도록 하세요. - 계산에 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
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
논리와 흐름의 모든 레슨
직접 연습해 보세요: 온라인 GDScript 컴파일러