Menu
CoddyTech

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.

challenge icon

Sfida

Facile

Fai in modo che ogni gemma comunichi a main.gd quanti punti vale:

  1. Dichiara signal collected(points) all'inizio di gem.gd.
  2. Alla fine di _on_body_entered, invia il segnale con i points della 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
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