Menu
CoddyTech

Calques et masques

Fait partie de la section Signaux et collisions du Journey Godot de Coddy. Leçon 22 sur 27.

Les corps et les zones se trouvent sur des couches de collision numérotées. Chacun possède deux paramètres :

  • collision_layer : les couches sur lesquelles il se trouve.
  • collision_mask : les couches qu’il prend en compte. Une zone ne détecte que les corps situés sur une couche incluse dans son masque.

Ce sont toutes deux des nombres. La couche 1 correspond à 1, la couche 2 à 2, la couche 3 à 4 et la couche 4 à 8. Tout commence sur la couche 1 avec le masque 1, donc tout détecte tout.

Ici, le joueur se trouve sur la couche 2 et la balle de corail sur la couche 1. Pour que seul le joueur puisse récupérer la pièce, celle-ci ne prend en compte que la couche 2 :

func _ready():
	collision_mask = 2
challenge icon

Défi

Moyen

Fais en sorte que la pièce ne détecte que le joueur.

  1. Le joueur se trouve sur la couche 2. Au début de _ready(), définis le collision_mask de la pièce pour qu’elle ne détecte que la couche 2.
  2. Laisse la ligne connect telle quelle.

Appuie sur « Jouer » : la balle traverse la pièce, puis tu avances et tu la ramasses. Ensuite, appuie sur « Vérifier ».

Essayez vous-même

extends Area2D

func _ready():
	body_entered.connect(_on_body_entered)

func _on_body_entered(body):
	queue_free()
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 Signaux et collisions

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