Menu
CoddyTech

Fin de partie

Fait partie de la section Projets du Journey Godot de Coddy. Leçon 9 sur 36.

Trois ratés doivent mettre fin au jeu. À zéro vie, affiche « Game Over » et mets le jeu en pause avec get_tree().paused = true. La raquette et la balle sont Pausable, elles se figent donc. Main est Always, elle continue donc à s’exécuter et peut lire la touche Entrée :

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

Reprends le jeu avant de recharger la scène. La pause s’applique à l’arbre, et non à la scène : une scène rechargée démarrerait donc figée.

challenge icon

Défi

Difficile

Termine la partie lorsque la dernière vie est perdue.

  1. Dans _on_missed, lorsque lives vaut 0, affiche Game Over dans $HUD/Message et mets le jeu en pause.
  2. Ajoute _process : lorsque le jeu est en pause et que action vient d’être activée, reprends le jeu, puis recharge la scène.

Appuie sur « Jouer » et rate trois balles : Game Over s’affiche et la balle s’arrête. Appuie sur Entrée pour recommencer. Puis appuie sur « Vérifier ».

Essayez vous-même

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
var lives = 3

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"
	$Ball.missed.connect(_on_missed)
	$HUD/Lives.text = "Lives: 3"

func _on_brick_broken():
	score += 10
	$HUD/Score.text = "Score: %d" % score

func _on_missed():
	lives -= 1
	$HUD/Lives.text = "Lives: %d" % lives

Toutes les leçons de Projets

Entraînez-vous par vous-même : Playground Godot