Menu
CoddyTech

Il tuo segnale

Fa parte della sezione Segnali e collisioni del percorso Godot di Coddy. Lezione 7 di 27.

Puoi assegnare a un nodo dei segnali personalizzati. Dichiarane uno all'inizio dello script con signal:

extends Area2D

signal hit

Invialo con emit() quando accade l'evento:

func _on_body_entered(body):
	hit.emit()

Il codice meno recente potrebbe usare emit_signal("hit"). Fa la stessa cosa.

Le punte segnalano soltanto che qualcuno è stato colpito. Spetta al codice in ascolto decidere cosa succede quando qualcuno viene colpito. Qui, lo script su Main è in ascolto di hit:

extends Node2D

# Main resta in ascolto del segnale hit degli spuntoni, una volta che gli spuntoni ne hanno uno.
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)

Presto scriverai listener come questo. In questa lezione modifichi soltanto le punte.

challenge icon

Sfida

Facile

Assegna un segnale alle punte e invialo quando qualcuno ci cammina sopra:

  1. Dichiara signal hit all'inizio di spikes.gd.
  2. In _on_body_entered, invialo con hit.emit().

Cammina sulle punte. La Console dovrebbe mostrare Ouch! e diventerai color corallo.

Provalo tu

extends Area2D

func _ready():
	body_entered.connect(_on_body_entered)

func _on_body_entered(body):
	pass
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Segnali e collisioni

Esercitati da solo: Playground Godot