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 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 darbe aldığını bildirir. Darbenin ne yapacağı, onu dinleyen 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 verin ve biri üzerlerine bastığında bu sinyali gönderin.

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

“Oyna” düğmesine basın ve dikenlerin üzerine yürüyün: Konsol'da Ouch! görünür ve mercan rengine dönersiniz. Ardından “Kontrol et” düğmesine basın.

Kendin dene

extends Area2D

func _ready():
	body_entered.connect(_on_body_entered)

func _on_body_entered(body):
	pass

Sinyaller ve Çarpışmalar bölümündeki tüm dersler

Kendi başına pratik yap: Godot playground