Menu
CoddyTech

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.

challenge icon

Thử thách

Trung bình

Để Main nhận biết mỗi khi có đồng xu được nhặt.

  1. Trong coin.gd, khai báo signal collected và phát tín hiệu này trước queue_free().
  2. Trong _ready() của main.gd, kết nối tín hiệu collected của từng đồng xu với hàm mới _on_coin_collected().
  3. 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

Tự luyện tập: Playground Godot