emit_signal
- Oyun Geliştirme kursu
- Orta seviye
- Ders 71/83
- 4 dk
emit_signal ile sinyali yayınlamayı öğrenirsin.
Sinyali yayınlamak: emit ve emit_signal
Bir sinyali tetiklemek ve dinleyicilere duyurmak için yayım (emit) işlemi yapılır. Godot 4'te en yaygın yöntem sinyal_adi.emit() çağrısıdır; alternatif olarak nesne seviyesindeki emit_signal("sinyal_adi") metodu da kullanılabilir.
signal health_changed(new_health)
func take_damage(amount: int):
health -= amount
health_changed.emit(health) # Sinyali tetiklerBu satır çalıştığı an sinyale bağlı tüm fonksiyonlar sırayla yürütülür.
Parametrelerle sinyal yayını
Sinyal tanımlanırken belirtilen parametreler, emit() veya emit_signal() fonksiyonuna argüman olarak sırayla verilir.
signal score_added(points, player_id)
func add_score():
score_added.emit(100, 1)
# veya: emit_signal("score_added", 100, 1)Parametre sayısı ve türü uyuşmazsa Godot hata verir veya uyarı üretir.
Uygulama Sinyal yayınla ve yakala
signal alert_triggered(msg) tanımla. _ready içinde bu sinyali _on_alert fonksiyonuna bağla ve alert_triggered.emit("Tehlike!") çağır. Fonksiyon konsola mesajı yazdırsın.
Başlangıç kodu
extends Node
signal alert_triggered(msg)
func _ready():
# Bagla ve emit et
func _on_alert(msg):
print(msg)Örnek çözüm
extends Node
signal alert_triggered(msg)
func _ready():
alert_triggered.connect(_on_alert)
alert_triggered.emit("Tehlike!")
func _on_alert(msg):
print(msg)Beklenen çıktı
Tehlike!
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Godot 4'te 'oyun_bitti' adlı bir özel sinyali yayınlamak için en yaygın modern sözdizimi hangisidir?
- trigger(oyun_bitti)
- oyun_bitti.fire()
- send_signal("oyun_bitti")
- oyun_bitti.emit() Doğru cevap
Açıklama: Godot 4'te sinyal nesnelerinin doğrudan 'emit()' metodu vardır (ör. oyun_bitti.emit()).
2 Sinyal tetikle
signal level_up
func finish_quest():
level_up.____()
signal level_up
func finish_quest():
level_up.emit()
Açıklama: Godot 4'te sinyali tetiklemek için sinyal nesnesi üzerinde .emit() çağrılır.
3 Yayınlama ve tetikleme terimleri
| Kavram | Anlamı |
|---|---|
emit() |
Sinyali doğrudan tetikler |
emit_signal |
İsimle sinyal yayınlama metodu |
Argümanlar |
Dinleyicilere taşınan veri |
Handler |
Sinyali karşılayan fonksiyon |