CodeBlanks Logo Icon CodeBlanks

connect metodu

connect ile sinyali bir fonksiyona bağlamayı öğrenirsin.

connect metodu ve Callable

Bir sinyali bir fonksiyona bağlamak için connect metodu kullanılır. Godot 4'te sinyale doğrudan nokta ile ulaşıp hedef fonksiyonu bir Callable olarak verirsin.

func _ready():
    var buton = $Button
    buton.pressed.connect(_on_button_pressed)

func _on_button_pressed():
    print("Butona tiklandi!")

Bu bağlama işlemi yapıldığında, sinyal tetiklendiği an hedef fonksiyon otomatik olarak çağrılır.

bind ile ekstra argüman aktarma

Bazen hedef fonksiyona sinyal anında fazladan bilgi iletmek istersin. Bunun için bind metodu kullanılır.

func _ready():
    $BtnA.pressed.connect(_on_secim.bind("A"))
    $BtnB.pressed.connect(_on_secim.bind("B"))

func _on_secim(ad: String):
    print("Secilen: ", ad)

bind, sinyalin parametrelerinin sonuna ek parametreler ekleyerek aynı fonksiyonun farklı düğümlerce paylaşılmasını kolaylaştırır.

Uygulama connect sözdizimini göster

Bir _ready fonksiyonu tanımla ve konsola "button.pressed.connect(_on_pressed)" metnini print ile yazdırarak sinyal bağlantı sözdizimini göster.

Başlangıç kodu

Player.cs
extends Node

# _ready fonksiyonunu tanimla ve baglanti kodunu yazdir

Örnek çözüm

Player.cs
extends Node

func _ready():
    print("button.pressed.connect(_on_pressed)")

Beklenen çıktı

button.pressed.connect(_on_pressed)

Soru ve cevaplar

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

1 Godot 4'te bir butonun pressed sinyalini '_on_tiklandi' fonksiyonuna kodla bağlayan doğru satır hangisidir?

  • button.call_when_clicked(_on_tiklandi)
  • button.listen("_on_tiklandi")
  • button.attach_event(_on_tiklandi)
  • button.pressed.connect(_on_tiklandi) Doğru cevap

Açıklama: Godot 4'te sinyal nesneleri üzerindeki 'connect' metodu hedef fonksiyonun adını (Callable referansını) parametre olarak alır.

2 Sinyal bağlama

Soru
func _ready():
    $Timer.timeout.____(_on_timer_timeout)
Cevap
func _ready():
    $Timer.timeout.connect(_on_timer_timeout)

Açıklama: Sinyali bir alıcı fonksiyona bağlamak için 'connect' metodu kullanılır.

3 Bağlantı yöntemleri

Kavram Anlamı
connect Sinyali fonksiyona bağlar
Callable Çağrılabilir fonksiyon referansı
bind Fonksiyona sabit argüman ekler
disconnect Sinyal bağlantısını koparır

Orta seviye bölümündeki tüm dersler