Menu
CoddyTech

Własny sygnał

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

Możesz przypisać 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 powoduje trafienie, zależy od kodu, który nasłuchuje. Tutaj skrypt w węźle Main nasłuchuje sygnału hit:

extends Node2D

# Main nasłuchuje sygnału hit kolców, gdy tylko kolce będą go mieć.
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 funkcje 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().

Naciśnij „Graj” i wejdź na kolce: w konsoli pojawi się Ouch!, a ty zmienisz kolor na koralowy. Następnie naciśnij „Sprawdź”.

Spróbuj swoich sił

extends Area2D

func _ready():
	body_entered.connect(_on_body_entered)

func _on_body_entered(body):
	pass

Wszystkie lekcje w sekcji Sygnały i kolizje

Poćwicz samodzielnie: Edytor online Godot