Menu
CoddyTech

Vite di Breakout

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

Quando la racchetta manca la palla, questa esce dal bordo inferiore. Dai al giocatore tre vite.

In ball.gd, una palla sotto y = 380 è stata mancata. Emetti un segnale missed e rimetti la palla in gioco sopra la racchetta.

if position.y > 380:
	missed.emit()
	position = Vector2(320, 290)
	velocity = Vector2(110, -280)

In main.gd, riduci il numero di vite. Quando arriva a zero, mostra la schermata di fine partita e metti in pausa con get_tree().paused = true. La racchetta e la palla sono Pausable, quindi si fermano. Main è Always, quindi continua a funzionare e può rilevare la pressione di Invio:

func _process(delta):
	if get_tree().paused and Input.is_action_just_pressed("action"):
		get_tree().paused = false
		get_tree().reload_current_scene()

Disattiva la pausa prima di ricaricare. La pausa appartiene all'albero, non alla scena, quindi una scena ricaricata partirebbe bloccata.

challenge icon

Sfida

Difficile
  1. In ball.gd, aggiungi signal missed. Quando position.y supera 380, emettilo e rimetti la palla in (320, 290) con velocità (110, -280).
  2. In main.gd, inizia con var lives = 3 e mostra Lives: 3 in $HUD/Lives. Ogni volta che la palla manca il bersaglio, perdi una vita e aggiorni l’etichetta.
  3. Quando le vite sono 0, mostra Game Over in $HUD/Message e metti in pausa il gioco.
  4. Durante la pausa, premendo Invio (il tasto action) togli la pausa e ricarichi la scena.

Provalo tu

extends Node2D

const BRICK = preload("res://brick.tscn")
const COLORS = [Color(1, 0.42, 0.42), Color(1, 0.78, 0.34), Color(0.49, 0.95, 0.75), Color(0.369, 0.635, 1), Color(0.75, 0.82, 0.95)]

var score = 0

func _ready():
	for row in 5:
		for column in 8:
			var brick = BRICK.instantiate()
			brick.position = Vector2(68 + column * 72, 60 + row * 26)
			brick.color = COLORS[row]
			add_child(brick)
	$Ball.brick_broken.connect(_on_brick_broken)
	$HUD/Score.text = "Score: 0"

func _on_brick_broken():
	score += 10
	$HUD/Score.text = "Score: %d" % score
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