Menu
CoddyTech

Dix tuyaux pour gagner

Fait partie de la section Projets du Journey Godot de Coddy. Leçon 25 sur 33.

Le joueur peut perdre, mais pas encore gagner. À un score de 10, affichez You Win! et mettez le jeu en pause. Testez cela à l’endroit où le score augmente :

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

Enfin, permettez au joueur de rejouer. Pendant que le jeu est en pause, la barre d’espace recharge la scène. Main est en mode Always, 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 flyer est en mode Pausable, il ignore donc la pression de la touche lorsque le jeu est en pause.

challenge icon

Défi

Moyen
  1. Lorsque le score atteint 10, affichez You Win! et mettez le jeu en pause.
  2. Lorsque le jeu est en pause, appuyez sur Espace (jump) pour reprendre et recharger la scène.

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