Các vùng chạm nhau
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 6 trên 27.
Các node của Godot có sẵn tín hiệu. Area2D có bốn tín hiệu bạn sẽ thường dùng:
body_enteredvàbody_exited: một vật thể đi vào hoặc rời khỏi. Vật thể là những thứ rắn, nhưCharacterBody2DvàStaticBody2D.area_enteredvàarea_exited: một vùng khác đi vào hoặc rời khỏi.
Một vùng không bao giờ gửi body_entered cho một vùng khác. Những ngôi sao đang rơi là các vùng, vì vậy giỏ cần area_entered:
func _ready():
area_entered.connect(_on_star_caught)Hàm nhận vùng vừa đi vào, vì vậy hàm cần một giá trị, chẳng hạn như _on_body_entered(body). Bạn có thể đặt tên tùy ý.
Thử thách
DễKhiến giỏ nhận biết những ngôi sao đang rơi.
- Các ngôi sao là vùng, không phải vật thể. Trong
_ready(), hãy kết nốiarea_enteredthay chobody_entered. - Giữ
_on_star_caughtlàm hàm.
Nhấn Chơi: Console hiển thị Caught a star! hai lần, mỗi ngôi sao một lần. Sau đó nhấn Kiểm tra.
Tự làm thử
extends Area2D
func _ready():
body_entered.connect(_on_star_caught)
func _on_star_caught(star):
print("Caught a star!")
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