Menu
CoddyTech

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.

challenge icon

Desafio

Fácil

Faça a placa reagir apenas ao jogador.

  1. Em _on_body_entered(body), coloque a linha modulate dentro de um if.
  2. Faça o if verificar se body.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