Menu
CoddyTech

Dix tuyaux pour gagner

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

Le joueur peut perdre, mais pas encore gagner. À un score de 10, affiche You win! et mets le jeu en pause. Teste cela là où le score augmente :

if score == 10:
	$HUD/Message.text = "You win!"
	get_tree().paused = true

Enfin, permet au joueur de rejouer. Pendant que le jeu est en pause, la barre d’espace recharge la scène. Main est toujours actif, donc son _process continue de s’exécuter :

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

La barre d’espace est aussi la touche de battement d’ailes. Le personnage volant est en mode Pausable, donc il ignore la pression de la touche pendant que le jeu est en pause.

challenge icon

Défi

Moyen

Gagne après dix tuyaux et rejoue.

  1. Lorsque le score atteint 10, affiche You win! dans $HUD/Message et mets le jeu en pause.
  2. Lorsque le jeu est en pause, la barre d’espace (jump) reprend le jeu et recharge la scène.

Appuie sur « Jouer » et passe dix tuyaux : You win! s’affiche. Appuie sur la barre d’espace pour recommencer. Puis appuie sur « Vérifier ».

Essayez vous-même

extends Node2D

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

var score = 0

func _ready():
	$PipeTimer.timeout.connect(_on_pipe_timer_timeout)
	$Flyer.crashed.connect(_on_crash)
	$HUD/Score.text = "0"

func _on_pipe_timer_timeout():
	var pipe = PIPE.instantiate()
	pipe.position = Vector2(700, randf_range(100, 250))
	pipe.hit.connect(_on_crash)
	pipe.scored.connect(_on_scored)
	$Pipes.add_child(pipe)

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

func _on_scored():
	score += 1
	$HUD/Score.text = str(score)
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Projets

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