Người gom xu: Đã thu thập
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 25 trên 27.
main.gd chứa các quy tắc của trò chơi, chẳng hạn như còn lại bao nhiêu đồng xu. Main cần biết mỗi khi bạn lấy một đồng xu. Vì vậy, mỗi đồng xu phát một tín hiệu, còn Main lắng nghe tất cả các tín hiệu đó.
Trong coin.gd, khai báo signal collected rồi phát tín hiệu đó ngay trước khi đồng xu tự hủy:
if body.is_in_group("player"):
collected.emit()
queue_free()Trong main.gd, kết nối mọi đồng xu trong nhóm, như bạn đã làm với các gai nhọn:
for coin in get_tree().get_nodes_in_group("coins"):
coin.collected.connect(_on_coin_collected)Việc này hoạt động trong _ready() của Main vì Godot khởi tạo các nút con trước nút cha. Đến lúc đó, mọi đồng xu đều đã tham gia nhóm.
Thử thách
Trung bìnhĐể Main nhận biết mỗi khi có đồng xu được nhặt.
- Trong
coin.gd, khai báosignal collectedvà phát tín hiệu này trướcqueue_free(). - Trong
_ready()củamain.gd, kết nối tín hiệucollectedcủa từng đồng xu với hàm mới_on_coin_collected(). - Cho hàm đó in ra
Got a coin!.
Nhấn Chơi rồi đi qua một đồng xu: Console sẽ hiển thị Got a coin!. Sau đó nhấn Kiểm tra.
Tự làm thử
extends Node2D
func _ready():
pass
Tất cả bài học trong Tín hiệu và va chạm
6Dự án: Người gom xu
Người gom xu: Di chuyểnNgười gom xu: Tiền xuTự luyện tập: Playground Godot