Segnali con valori
Fa parte della sezione Segnali e collisioni del percorso Godot di Coddy. Lezione 8 di 27.
Un segnale può trasportare valori, proprio come body_entered trasporta il corpo. Elencali tra parentesi quadre quando lo dichiari:
signal collected(points)Passa i valori a emit(), nello stesso ordine:
collected.emit(points)Ogni funzione collegata a collected riceve il valore. Qui lo script su Main aggiunge i punti al punteggio e lo stampa:
func _on_gem_collected(points):
score += points
print("Score: ", score)Entrambe le gemme eseguono lo stesso script. I points della gemma piccola sono 10 e quelli della gemma grande sono 25, impostati su ciascun nodo nell'Inspector. Quindi invia points, non un numero che inserisci tu.
Sfida
FacileFai in modo che ogni gemma comunichi a main.gd quanti punti vale:
- Dichiara
signal collected(points)all'inizio digem.gd. - Alla fine di
_on_body_entered, invia il segnale con ipointsdella gemma.
Passa sopra entrambe le gemme. La Console dovrebbe mostrare Score: 10, poi Score: 35.
Provalo tu
extends Area2D
@export var points = 10
func _ready():
body_entered.connect(_on_body_entered)
func _on_body_entered(body):
if not visible:
return
visible = false
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Segnali e collisioni
2Segnali
Le aree si incontranoIl tuo segnaleSegnali con valoriIl segnale di un altro nodoAscolta il tuo segnaleEsercitati da solo: Playground Godot