Tín hiệu của riêng bạn
Thuộc phần Tín hiệu và va chạm trong hành trình Godot của Coddy. Bài học 7 trên 27.
Bạn có thể tạo tín hiệu riêng cho một node. Khai báo tín hiệu ở đầu script bằng signal:
extends Area2D
signal hitGửi tín hiệu bằng emit() khi sự việc xảy ra:
func _on_body_entered(body):
hit.emit()Code cũ có thể dùng emit_signal("hit"). Cách này cũng làm điều tương tự.
Các gai chỉ báo rằng có ai đó bị va trúng. Việc va trúng gây ra điều gì là tùy thuộc vào code lắng nghe tín hiệu. Ở đây, script trên Main lắng nghe hit:
extends Node2D
# Main lắng nghe tín hiệu hit từ các gai nhọn khi chúng phát ra tín hiệu này.
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)Bạn sẽ sớm viết những đoạn code lắng nghe như thế này. Trong bài học này, bạn chỉ chỉnh sửa các gai.
Thử thách
DễTạo một tín hiệu cho các gai nhọn và gửi tín hiệu đó khi có ai giẫm lên chúng.
- Khai báo
signal hitở đầu tệpspikes.gd. - Trong
_on_body_entered, gửi tín hiệu đó bằnghit.emit().
Nhấn Chơi rồi bước lên các gai nhọn: Console hiển thị Ouch! và nhân vật của bạn chuyển sang màu san hô. Sau đó nhấn Kiểm tra.
Tự làm thử
extends Area2D
func _ready():
body_entered.connect(_on_body_entered)
func _on_body_entered(body):
pass
Tất cả bài học trong Tín hiệu và va chạm
2Tín hiệu
Các vùng chạm nhauTín hiệu của riêng bạnTín hiệu kèm giá trịTín hiệu từ nút khácLắng nghe tín hiệu của bạnTự luyện tập: Playground Godot