Özel sinyal
- Oyun Geliştirme kursu
- Orta seviye
- Ders 70/83
- 4 dk
signal anahtar kelimesiyle özel sinyal tanımlamayı öğrenirsin.
Özel sinyal tanımlama
Kendi oyun mantığına özel olaylar üretmek için signal anahtar kelimesini kullanırsın. Sinyal tanımları genellikle script'in en üstünde, değişkenlerden önce yapılır.
extends CharacterBody2D
signal health_changed(new_health)
signal player_diedÖzel sinyaller tıpkı yerleşik sinyaller gibi parametreli veya parametresiz tanımlanabilir.
Parametreli sinyallerin gücü
Özel sinyallere parametre eklemek dinleyicilere zengin veri aktarır. Tip belirteçleri kullanarak sinyalin taşıdığı veri türünü netleştirebilirsin.
signal coin_collected(amount: int)
signal level_completed(level_name: String, score: int)Bu sayede dinleyici fonksiyon tetiklendiğinde gerekli değerleri doğrudan parametre olarak alır.
Uygulama Özel sinyal tanımla ve yazdır
En başta signal oyuna_baslandi tanımla. _ready fonksiyonu içinde konsola "Ozel sinyal tanimlandi" yazdır.
Başlangıç kodu
extends Node
# Sinyali buraya tanimla
func _ready():
# Konsola yazdirÖrnek çözüm
extends Node
signal oyuna_baslandi
func _ready():
print("Ozel sinyal tanimlandi")Beklenen çıktı
Ozel sinyal tanimlandi
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 GDScript'te 'can_degisti' adında ve yeni can değerini taşıyan bir özel sinyal nasıl tanımlanır?
- event can_degisti(yeni_can)
- signal can_degisti(yeni_can) Doğru cevap
- var can_degisti = Signal(yeni_can)
- def signal can_degisti(yeni_can)
Açıklama: GDScript'te özel sinyaller doğrudan 'signal' anahtar kelimesi ve ardından sinyal adı ile parametre listesi yazılarak tanımlanır.
2 Özel sinyal yaz
# Skor degistiginde yayinlanacak sinyal
____ score_updated(new_score: int)
# Skor degistiginde yayinlanacak sinyal
signal score_updated(new_score: int)
Açıklama: Özel sinyal tanımlamak için 'signal' anahtar kelimesi kullanılır.
3 Sinyal tanımlama öğeleri
| Kavram | Anlamı |
|---|---|
signal |
Sinyal tanımlama anahtar sözcüğü |
player_died |
Parametresiz özel sinyal örneği |
score_changed(v) |
Parametreli özel sinyal |
new_health: int |
Tip belirteçli sinyal parametresi |