Menu
CoddyTech

Scontrarsi con i tubi

Fa parte della sezione Progetti del percorso Godot di Coddy. Lezione 23 di 33.

Colpire un tubo o il terreno dovrebbe terminare la partita. Entrambi portano a una funzione in main.gd:

func _on_crash():
	$HUD/Message.text = "Game Over"
	get_tree().paused = true

Un tubo. Il tubo è un Area2D con due forme, le metà superiore e inferiore. Lo spazio vuoto non ha forma. In pipe.gd, collega body_entered ed emetti un segnale hit. main.gd collega il segnale hit di ogni nuovo tubo prima di aggiungerlo.

Il terreno. La sua parte superiore si trova a y = 318. Il bordo del personaggio volante dista 12 pixel dal suo centro, quindi tocca il terreno quando position.y supera 306. A quel punto, flyer.gd emette crashed.

Il personaggio volante, i tubi e il timer sono Pausable, quindi la pausa li blocca tutti.

challenge icon

Sfida

Difficile
  1. In pipe.gd, aggiungi signal hit. Collega body_entered in _ready ed emetti hit quando un corpo entra.
  2. In flyer.gd, aggiungi signal crashed ed emettilo quando position.y è maggiore di 306.
  3. In main.gd, collega hit di ogni tubo e crashed del flyer a _on_crash. Mostra Game Over e mette in pausa il gioco.

Provalo tu

extends Node2D

const PIPE = preload("res://pipe.tscn")

func _ready():
	$PipeTimer.timeout.connect(_on_pipe_timer_timeout)

func _on_pipe_timer_timeout():
	var pipe = PIPE.instantiate()
	pipe.position = Vector2(700, randf_range(100, 250))
	$Pipes.add_child(pipe)
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 Progetti

Esercitati da solo: Playground Godot