Apenas o jogador
Parte da seção Sinais e colisões do Journey de Godot da Coddy. Lição 4 de 27.
Uma área percebe todos os corpos que entram. Muitas vezes, apenas um deve contar, como uma porta que se abre somente para o herói.
Use if para verificar quem é:
func _on_body_entered(body):
if body.name == "Player":
print("Hello, player")== verifica se dois valores são iguais. As linhas abaixo do if, com um nível a mais de indentação, são executadas somente quando são iguais. Os nomes precisam corresponder exatamente. "player" com p minúsculo é um nome diferente.
Aqui, o rover passa primeiro por cima de uma placa de pressão e, depois, você pisa nela.
Desafio
FácilFaça a placa reagir apenas ao jogador.
- Em
_on_body_entered(body), coloque a linhamodulatedentro de umif. - Faça o
ifverificar sebody.nameé"Player", usando==.
Pressione “Jogar”: a placa mantém sua cor para o rover e fica verde-menta quando você pisa nela. Depois, pressione “Verificar”.
Experimente você mesmo
extends Area2D
func _ready():
body_entered.connect(_on_body_entered)
func _on_body_entered(body):
modulate = Color(0.49, 0.95, 0.75)
Todas as lições de Sinais e colisões
Pratique por conta própria: Playground de Godot