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 i tuoi segnali. Dichiarane uno all'inizio dello script con signal:

extends Area2D

signal hit

Invialo con emit() quando si verifica l'evento:

func _on_body_entered(body):
	hit.emit()

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

Le punte segnalano solo che qualcuno è stato colpito. Spetta al codice in ascolto decidere cosa comporta un colpo. Qui lo script su Main è in ascolto di hit:

extends Node2D

# Main resta in ascolto del segnale hit degli spuntoni, non appena questi 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 solo le punte.

challenge icon

Sfida

Facile

Dai alle punte un segnale 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().

Premi «Gioca» e cammina sulle punte: nella Console appare Ouch! e diventi color corallo. Poi premi «Verifica».

Provalo tu

extends Area2D

func _ready():
	body_entered.connect(_on_body_entered)

func _on_body_entered(body):
	pass

Tutte le lezioni di Segnali e collisioni

Esercitati da solo: Playground Godot