Menu
CoddyTech

Enum Tanımlama

Coddy'nin GDScript Journey'sinin Mantık ve Akış bölümünün bir parçası. Ders 38 / 78.

Bir enum bildirimi, enum anahtar sözcüğünden, bir addan ve virgüllerle ayrılmış süslü parantezlerin içindeki seçeneklerden oluşur. Godot stil kılavuzu, adın PascalCase biçiminde, seçeneklerin ise CONSTANT_CASE biçiminde yazılmasını önerir:

enum Direction { NORTH, EAST, SOUTH, WEST }

Uzun bir enumda her seçenek ayrı bir satıra yazılabilir. Son seçeneğin ardından virgül koymaya izin verilir:

enum Weapon {
	SWORD,
	BOW,
	STAFF,
}

Bir seçeneğin değerini = ile belirleyebilirsin. Değeri olmayan bir seçenek, kendisinden önceki seçeneğin değerine 1 eklenmiş hâlini alır:

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

Enum da bir türdür. Onunla bildirilen bir değişken, seçeneklerinden birini tutar:

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

Bir betik, her biri kendi adına sahip olan birkaç enum bildirebilir. Adı belirtmezsen, enum { LEFT, RIGHT } örneğinde olduğu gibi, seçenekler betiğin sabitleri hâline gelir ve LEFT ifadesini bir önek olmadan yazarsın.

challenge icon

Görev

Kolay

Program, bir düşmanın temel hasarını (tam sayı) okur. Daha zor zorluk seviyelerinde düşman daha sert vurur: hasar, temel hasarın zorluk seviyesinin değeriyle çarpımıdır.

  1. Betik düzeyinde, Difficulty adlı bir enum tanımla; seçenekleri EASY (değeri 1), NORMAL, HARD ve NIGHTMARE (değeri 10) olsun. NORMAL ve HARD için kendi değerlerini belirtme; böylece EASY değerinden itibaren sayılırlar.
  2. Hesaplamada enum seçeneklerini kullanarak her zorluk seviyesi için hasarı, satır başına bir tane olacak şekilde yazdır.

12 girdisi için çıktı şöyledir:

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

Kendin dene

extends Node

# Difficulty enum'unu burada tanımlayın

func _ready():
	var base_damage := int(OS.read_string_from_stdin())
	# Her zorluk seviyesi için hasarı yazdırın
	pass
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Mantık ve Akış bölümündeki tüm dersler

Kendi başına pratik yap: Online GDScript derleyicisi