Menu
CoddyTech

Kendi Sinyalin

Coddy'nin Godot Journey'sinin Sinyaller ve Çarpışmalar bölümünün bir parçası. Ders 7 / 27.

Bir düğüme kendi sinyallerini verebilirsin. Betiğin en üstünde signal ile bir sinyal tanımla:

extends Area2D

signal hit

Olay gerçekleştiğinde emit() ile sinyali gönder:

func _on_body_entered(body):
	hit.emit()

Daha eski kodlarda emit_signal("hit") kullanılabilir. Aynı işi yapar.

Dikenler yalnızca birinin hasar aldığını bildirir. Hasar alındığında ne olacağı, dinleyici koda bağlıdır. Burada Main üzerindeki betik hit sinyalini dinler:

extends Node2D

# Spikes bir hit sinyaline sahip olduğunda Main bu sinyali dinler.
func _ready():
	if $Spikes.has_signal("hit"):
		$Spikes.hit.connect(_on_spikes_hit)

func _on_spikes_hit():
	print("Ouch!")
	$Player.modulate = Color(1, 0.42, 0.42)

Yakında bunun gibi dinleyiciler yazacaksın. Bu derste yalnızca dikenleri düzenleyeceksin.

challenge icon

Görev

Kolay

Dikenlere bir sinyal tanımlayın ve biri üzerlerine bastığında bu sinyali gönderin:

  1. spikes.gd dosyasının en üstünde signal hit tanımlayın.
  2. _on_body_entered içinde hit.emit() ile sinyali gönderin.

Dikenlerin üzerine yürüyün. Konsolda Ouch! görünmeli ve mercan rengine dönmelisiniz.

Kendin dene

extends Area2D

func _ready():
	body_entered.connect(_on_body_entered)

func _on_body_entered(body):
	pass
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