Menu
CoddyTech

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.

challenge icon

Görev

Kolay

Her mücevherin main.gd dosyasına kaç puan değerinde olduğunu bildirmesini sağlayın:

  1. gem.gd dosyasının en üstünde signal collected(points) bildirimini yapın.
  2. _on_body_entered işlevinin sonunda, mücevherin points değ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
quiz iconKendini test et

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

Kendi başına pratik yap: Godot playground