CodeBlanks Logo Icon CodeBlanks

Node kavramı

Node'un Godot'un temel yapı taşı olduğunu öğrenirsin.

Node: temel yapı taşı

Godot'ta her şey bir node (düğüm) ile başlar; sahnedeki her parçanın arkasında bir düğüm sınıfı vardır. Bütün düğüm türleri ortak bir temel sınıftan (Node) türemiştir ve name gibi ortak özellikler taşır; Node2D ve Control gibi alt sınıflar ise position ve visible gibi ek özellikler ekler. Yeni bir düğümü kodla önce new ile oluşturur, sonra add_child ile ağaca bağlarsın.

var oyuncu = Node2D.new()
oyuncu.name = "Oyuncu"
add_child(oyuncu)

Ağaça bağlanan düğüm sahnenin parçası olur ve diğer düğümlerle birlikte çalışmaya başlar.

Düğüm türleri ve _ready

Node en sade düğüm türüdür; oyun nesneleri çoğunlukla ondan türeyen Node2D, Node3D ya da arayüz için Control düğümleriyle kurulur. Bir düğüm ağaca eklenip sahne başladığında _ready fonksiyonu bir kez çalışır ve başlangıç ayarlarını burada yaparsın. Düğümlerin birbirine üst-ast bağlanması, sahne ağacını meydana getirir.

func _ready():
    print("Düğüm hazır: " + name)

name özelliği, düğümün ağaçtaki adını verir.

Uygulama Kodla ağaç kur

_ready içinde küçük bir ağaç kur: Node.new() ile kok düğümünü oluşturup adını "AnaSahne" yap, Node.new() ile oyuncu düğümünü oluşturup adını "Oyuncu" yap ve oyuncu düğümünü kok düğümünün altına ekle. Sonra kok un adını ve kok un ilk çocuğunun adını iki satırda yazdır.

Başlangıç kodu

Player.cs
func _ready():
    # 1) kok adında bir Node oluştur ve adını "AnaSahne" yap
    # 2) oyuncu adında bir Node oluştur ve adını "Oyuncu" yap
    # 3) oyuncu'yu kok'un altına ekle
    # 4) kok'un adını yazdır
    # 5) kok'un ilk çocuğunun adını yazdır
    pass

Örnek çözüm

Player.cs
func _ready():
    var kok = Node.new()
    kok.name = "AnaSahne"
    var oyuncu = Node.new()
    oyuncu.name = "Oyuncu"
    kok.add_child(oyuncu)
    print(kok.name)
    print(kok.get_child(0).name)

Beklenen çıktı

AnaSahne
Oyuncu

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Yeni oluşturulan bir düğümü sahnenin ağacına bağlamak için hangi metot kullanılır?

Player.cs
var oyuncu = Node2D.new()
oyuncu.name = "Oyuncu"
  • insert()
  • add_node()
  • attach()
  • add_child() Doğru cevap

Açıklama: Düğümü ağaca eklemek için add_child kullanılır; bu çağrıdan önce düğüm ağacın bir parçası değildir.

2 Düğümün adı

Soru
func _ready():
    print("Düğüm hazır: " + ____)
Cevap
func _ready():
    print("Düğüm hazır: " + name)

Açıklama: Her düğümün ağaçtaki adı name özelliğinde tutulur; onu metinle birleştirip yazdırabilirsin.

3 Node parçaları

Kavram Anlamı
Node Tüm düğümlerin dayandığı temel sınıf
Node2D 2B oyun nesneleri için düğüm türü
add_child Düğümü ağaca ekler
_ready Düğüm sahneye girince bir kez çalışır

Başlangıç bölümündeki tüm dersler