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 hitEmita-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.
Desafio
FácilDê um sinal aos espinhos e envie-o quando alguém pisar neles:
- Declare
signal hitno início despikes.gd. - Em
_on_body_entered, envie-o comhit.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
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