Değer İçeren Sinyaller
Coddy'nin Godot Journey'sinin Sinyaller ve Çarpışmalar bölümünün bir parçası. Ders 8 / 27.
Bir sinyal, body_entered sinyalinin gövdeyi taşıdığı gibi değerler taşıyabilir. Sinyali bildirirken bu değerleri köşeli parantez içinde listele:
signal collected(points)Değerleri emit() işlevine aynı sırayla ver:
collected.emit(points)collected sinyaline bağlanan her işlev bu değeri alır. Burada Main üzerindeki betik, puanları skora ekler ve sonucu yazdırır:
func _on_gem_collected(points):
score += points
print("Score: ", score)Her iki mücevher de aynı betiği çalıştırır. Küçük mücevherin points değeri 10, büyük mücevherinki ise 25'tir; her değer Inspector'da ilgili düğüm için ayarlanır. Bu nedenle, elle yazdığın bir sayıyı değil, points değerini gönder.
Görev
KolayHer mücevherin main.gd dosyasına kaç puan değerinde olduğunu bildirmesini sağlayın:
gem.gddosyasının en üstündesignal collected(points)bildirimini yapın._on_body_enteredişlevinin sonunda, mücevherinpointsdeğerini gönderin.
Her iki mücevherin de üzerinden geçin. Konsolda önce Score: 10, ardından Score: 35 görünmelidir.
Kendin dene
extends Area2D
@export var points = 10
func _ready():
body_entered.connect(_on_body_entered)
func _on_body_entered(body):
if not visible:
return
visible = false
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Sinyaller ve Çarpışmalar bölümündeki tüm dersler
2Sinyaller
Alanlar Birbirleriyle BuluşuyorKendi SinyalinDeğer İçeren SinyallerBaşka Bir Düğümün SinyaliSinyalini DinleKendi başına pratik yap: Godot playground