나만의 시그널
Coddy Godot 여정의 시그널과 충돌 섹션에 포함된 레슨. 27개 중 7번째.
노드에 자신만의 시그널을 지정할 수 있습니다. 스크립트 상단에 다음과 같이 선언하세요. signal:
extends Area2D
signal hit일이 발생했을 때 emit()으로 시그널을 보내세요.
func _on_body_entered(body):
hit.emit()이전 코드에서는 emit_signal("hit")을 사용할 수도 있습니다. 같은 기능을 합니다.
가시는 누군가 맞았다는 사실만 알립니다. 맞았을 때 어떤 일이 일어나는지는 이를 수신하는 코드에 달려 있습니다. 여기서는 Main의 스크립트가 hit을 수신합니다.
extends Node2D
# 스파이크에 hit 신호가 생기면 Main이 그 신호를 수신합니다.
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)곧 이와 같은 수신기를 작성하게 됩니다. 이번 단원에서는 가시만 수정합니다.
챌린지
쉬움가시에 신호를 선언하고 누군가 가시를 밟으면 신호를 보내세요:
spikes.gd의 맨 위에signal hit을 선언하세요._on_body_entered에서hit.emit()으로 신호를 보내세요.
가시 위로 걸어가세요. 콘솔에 Ouch!가 표시되고 캐릭터가 산호색으로 변합니다.
직접 해보기
extends Area2D
func _ready():
body_entered.connect(_on_body_entered)
func _on_body_entered(body):
pass
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
시그널과 충돌의 모든 레슨
직접 연습해 보세요: Godot 플레이그라운드