Yerleşik sinyaller
- Oyun Geliştirme kursu
- Orta seviye
- Ders 68/83
- 4 dk
button.pressed gibi yerleşik sinyalleri öğrenirsin.
Yerleşik sinyaller
Godot'taki hazır düğümlerin çoğunda yerleşik (built-in) sinyaller bulunur. Örneğin bir Button düğümünün pressed sinyali ya da bir Timer düğümünün timeout sinyali vardır.
# Button dugumu tiklandiginda pressed sinyali yayinlar
# Timer dugumu suresi dolunca timeout yayinlarEditörün 'Node' sekmesinden veya doğrudan kod içerisinden bu yerleşik sinyalleri görebilir ve dinleyebilirsin.
Diğer yaygın yerleşik sinyaller
Yerleşik sinyaller farklı düğüm türlerine göre özelleşmiştir. Area2D için body_entered bir fizik nesnesi alana girdiğinde bildirilir; LineEdit metin değiştiğinde text_changed üretir.
# Area2D bir nesne carpisinca:
# body_entered(body: Node2D)
# LineEdit yazi yazilinca:
# text_changed(new_text: String)Bu sinyaller ihtiyaç duyulan argümanları (örneğin çarpan gövdeyi) otomatik olarak dinleyiciye iletir.
Uygulama Yerleşik sinyal bildir
Bir _ready fonksiyonu tanımla. İçinde "Buton sinyali: pressed" metnini print ile yazdır.
Başlangıç kodu
extends Node
# _ready fonksiyonunu tanimla ve sinyali yazdirÖrnek çözüm
extends Node
func _ready():
print("Buton sinyali: pressed")Beklenen çıktı
Buton sinyali: pressed
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Bir Button düğmesine fareyle tıklandığında hangi yerleşik sinyal tetiklenir?
- mouse_hit
- trigger_on
- pressed Doğru cevap
- clicked_now
Açıklama: Godot'ta BaseButton ve Button sınıflarının standart tıklama sinyali 'pressed' olarak adlandırılır.
2 Buton sinyaline eriş
var btn = Button.new()
# Buton tiklama sinyalinin adi
var sinyal_adi = btn.____.name
var btn = Button.new()
# Buton tiklama sinyalinin adi
var sinyal_adi = btn.pressed.name
Açıklama: Button düğmesinin yerleşik sinyali 'pressed' olarak tanımlıdır.
3 Düğüm ve yerleşik sinyal eşleşmesi
| Kavram | Anlamı |
|---|---|
Button |
pressed |
Timer |
timeout |
Area2D |
body_entered |
LineEdit |
text_changed |