Menu
CoddyTech

La porte verrouillée

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

Une Door bloque le passage vers les escaliers. C’est un StaticBody2D, donc move_and_slide arrête le héros devant elle. Juste devant se trouve DoorZone, une Area2D un peu plus large que la porte, de sorte que le héros l’atteint en premier.

Lorsque le héros entre dans la zone avec la clé, la porte s’ouvre :

func _on_door_zone_body_entered(body):
	if has_key:
		$Door.queue_free()
		$DoorZone.queue_free()

Supprime aussi la zone. Sinon, le héros y entrera de nouveau, $Door n’existera plus et le jeu s’arrêtera avec le message Node not found.

Supprime la porte avec queue_free(). hide() arrête seulement le rendu. Sa forme de collision bloquerait toujours le héros.

challenge icon

Défi

Moyen

Dans main.gd, connecte $DoorZone.body_entered. Lorsqu’un corps entre et que has_key est vrai, supprime $Door et $DoorZone.

Essayez vous-même

extends Node2D

var has_key = false

func _ready():
	$Key.body_entered.connect(_on_key_body_entered)

func _on_key_body_entered(body):
	has_key = true
	$Key.queue_free()
	$HUD/KeyIcon.visible = true
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