00
:
00
:
00
:
00
Corso SEO AI - Usa SEOEMAIL al checkout per il 30% di sconto

Segnali e Gruppi

Segnali (Observer Pattern)

I segnali permettono a un nodo di “gridare” che è successo qualcosa senza sapere chi sta ascoltando. È il modo principale per gestire eventi: click di pulsanti, collisioni, timer scaduti.

Definire ed Emettere

```gdscript

Player.gd

signal health_changed(new_value) signal died

func take_damage(amount): health -= amount health_changed.emit(health) # Emette il segnale

if health <= 0:
    died.emit()

```

Collegare (Connect)

Puoi collegare i segnali via Editor (tab Node) o via codice.

```gdscript

HUD.gd

func _ready(): # Collega il segnale ‘health_changed’ del player alla funzione ‘_on_health_changed’ var player = get_node(“…/Player”) player.health_changed.connect(_on_health_changed)

func _on_health_changed(new_health): $ProgressBar.value = new_health ```

Gruppi

I gruppi sono “etichette” che puoi applicare ai nodi.

Esempio: Aggiungi tutti i nemici al gruppo “enemies”.

```gdscript

Bullet.gd

func _on_body_entered(body): if body.is_in_group(“enemies”): body.take_damage(10) queue_free() ```

Puoi anche chiamare una funzione su tutti i nodi di un gruppo:

```gdscript get_tree().call_group(“enemies”, “alert”, player.position) ```