Menu
CoddyTech
flag Pt iconPortuguêsdown icon

Seu Próprio Sinal

Parte da seção Sinais e colisões do Journey de Godot da Coddy. Lição 7 de 27.

Você pode dar sinais próprios a um nó. Declare um no início do script com signal:

extends Area2D

signal hit

Emita-o com emit() quando algo acontecer:

func _on_body_entered(body):
	hit.emit()

Códigos mais antigos podem usar emit_signal("hit"). Ele faz a mesma coisa.

Os espinhos apenas informam que alguém foi atingido. O que acontece quando alguém é atingido depende do código que escuta. Aqui, o script em Main escuta hit:

extends Node2D

# Main escuta o sinal hit dos espinhos, assim que eles tiverem esse sinal.
func _ready():
	if $Spikes.has_signal("hit"):
		$Spikes.hit.connect(_on_spikes_hit)

func _on_spikes_hit():
	print("Ouch!")
	$Player.modulate = Color(1, 0.42, 0.42)

Em breve, você escreverá ouvintes como este. Nesta lição, você editará apenas os espinhos.

challenge icon

Desafio

Fácil

Dê um sinal aos espinhos e envie-o quando alguém pisar neles:

  1. Declare signal hit no início de spikes.gd.
  2. Em _on_body_entered, envie-o com hit.emit().

Pise nos espinhos. O Console deve mostrar Ouch! e você ficará coral.

Experimente você mesmo

extends Area2D

func _ready():
	body_entered.connect(_on_body_entered)

func _on_body_entered(body):
	pass
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Sinais e colisões

Pratique por conta própria: Playground de Godot