Menu
CoddyTech

Redémarrer avec une touche

Fait partie de la section Règles du jeu du Journey Godot de Coddy. Leçon 15 sur 29.

Cette ligne abandonne la scène et la recharge depuis son fichier :

get_tree().reload_current_scene()

La nouvelle partie commence avec trois vies, le joueur sur le carré vert et « Game Over » masqué.

Main est également en pause, donc son _process ne détecte jamais la touche. Définis le process_mode de Main sur Node.PROCESS_MODE_ALWAYS. Ses enfants héritent de ce mode, à l’exception du joueur. La scène définit le mode du joueur sur Pausable, donc il s’arrête toujours.

Le rechargement ne relance pas le jeu. Définis get_tree().paused = false avant de recharger, sinon la nouvelle partie démarre en pause.

challenge icon

Défi

Facile

Permets au joueur d’appuyer sur E pour rejouer après l’écran de fin :

  1. Dans _ready(), définis le process_mode de ce nœud sur Node.PROCESS_MODE_ALWAYS.
  2. Dans _process(), lorsque lives vaut 0 et que action vient d’être activée, remets le jeu en pause et recharge la scène.

Essayez vous-même

extends Node2D

var lives = 3

func _ready():
	$HUD/Lives.text = "Lives: %d" % lives
	$Player.hurt.connect(_on_player_hurt)
	$Blink.timeout.connect(_on_blink_timeout)
	$Blink.process_mode = Node.PROCESS_MODE_ALWAYS

func _process(delta):
	pass

func _on_player_hurt():
	lives -= 1
	$HUD/Lives.text = "Lives: %d" % lives
	if lives == 0:
		$HUD/GameOver.visible = true
		$HUD/Hint.visible = true
		get_tree().paused = true

func _on_blink_timeout():
	if lives == 0:
		$HUD/GameOver.visible = not $HUD/GameOver.visible
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 Règles du jeu

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