Áreas detectam corpos
Parte da seção Sinais e colisões do Journey de Godot da Coddy. Lição 1 de 27.
Uma Area2D é uma zona que detecta o que entra nela.
Uma Area2D precisa de um nó filho CollisionShape2D. A forma define o tamanho da área, neste caso, a caixa verde. Os corpos atravessam uma área. Eles não colidem com ela.
Quando um corpo entra, a área envia um sinal chamado body_entered. O script dessa zona fica atento a ele:
extends Area2D
func _ready():
body_entered.connect(_on_body_entered)
func _on_body_entered(body):
print("Welcome to the zone!")_on_body_entered é executada cada vez que um corpo entra na forma. A próxima lição explica a linha connect. O robô é um corpo, mas se move ao longo de y = 250, abaixo da zona.
Desafio
FácilColoque a zona no caminho do robô.
- O robô anda ao longo de
y = 250. Em_ready(), definaposition.yda zona como250. - Deixe a linha
connectcomo está.
Pressione “Jogar”: quando o robô entrar, o Console exibirá Welcome to the zone!. Depois, pressione “Verificar”.
Experimente você mesmo
extends Area2D
func _ready():
body_entered.connect(_on_body_entered)
func _on_body_entered(body):
print("Welcome to the zone!")
Todas as lições de Sinais e colisões
Pratique por conta própria: Playground de Godot