Menu
CoddyTech

Własny sygnał

Część sekcji Sygnały i kolizje ścieżki Godot w Coddy. Lekcja 7 z 27.

Możesz nadać węzłowi własne sygnały. Zadeklaruj jeden na początku skryptu za pomocą signal:

extends Area2D

signal hit

Wyemituj go za pomocą emit(), gdy coś się wydarzy:

func _on_body_entered(body):
	hit.emit()

Starszy kod może używać emit_signal("hit"). Działa tak samo.

Kolce tylko zgłaszają, że ktoś został trafiony. To, co oznacza trafienie, zależy od kodu nasłuchującego. W tym przypadku skrypt na węźle Main nasłuchuje sygnału hit:

extends Node2D

# Main nasłuchuje sygnału hit od kolców, gdy tylko zostanie on do nich dodany.
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)

Wkrótce napiszesz podobne procedury nasłuchujące. W tej lekcji edytujesz tylko kolce.

challenge icon

Wyzwanie

Łatwy

Dodaj kolcom sygnał i wysyłaj go, gdy ktoś na nie nadepnie:

  1. Zadeklaruj signal hit na początku pliku spikes.gd.
  2. W _on_body_entered wyślij go za pomocą hit.emit().

Wejdź na kolce. W konsoli powinno pojawić się Ouch!, a ty zmienisz kolor na koralowy.

Spróbuj swoich sił

extends Area2D

func _ready():
	body_entered.connect(_on_body_entered)

func _on_body_entered(body):
	pass
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Sygnały i kolizje

Poćwicz samodzielnie: Edytor online Godot