Menu
CoddyTech

Se cogner aux tuyaux

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

Toucher un tuyau ou le sol devrait mettre fin à la partie. Les deux appellent une fonction dans main.gd :

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

Un tuyau. Le tuyau est une Area2D composée de deux formes, les moitiés supérieure et inférieure. L'espace entre les deux n'a pas de forme. Dans pipe.gd, connecte body_entered et émets un signal hit. main.gd connecte le signal hit de chaque nouveau tuyau avant de l'ajouter.

Le sol. Son sommet se trouve à y = 318. Le bord du flyer est à 12 pixels de son centre, il touche donc le sol lorsque position.y dépasse 306. flyer.gd émet alors crashed.

Le flyer, les tuyaux et le minuteur sont susceptibles d'être mis en pause, donc la pause les immobilise tous.

challenge icon

Défi

Difficile

Termine le jeu en cas de collision.

  1. Dans pipe.gd, ajoute signal hit, connecte body_entered dans _ready et émet hit lorsqu’un corps entre.
  2. Dans flyer.gd, ajoute signal crashed et émet-le lorsque position.y dépasse 306.
  3. Dans main.gd, connecte le hit de chaque tuyau et le crashed du flyer à _on_crash, qui affiche Game Over et met le jeu en pause.

Appuie sur « Jouer » et laisse-toi tomber : Game Over s’affiche. Puis appuie sur « Vérifier ».

Essayez vous-même

extends Node2D

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

func _ready():
	$PipeTimer.timeout.connect(_on_pipe_timer_timeout)

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

Toutes les leçons de Projets

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