Menu
CoddyTech

Những đồng xu còn lại

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 17 trên 27.

Mỗi đồng xu ở đây đếm số đồng xu còn lại khi bạn nhặt nó. Đồng xu đầu tiên in ra Coins left: 3, nhưng chỉ còn hai đồng.

queue_free() chờ đến cuối khung hình mới chạy. Trong lúc đó, đồng xu vẫn còn trong nhóm nên nó tự đếm chính mình.

Trước tiên, hãy xóa đồng xu khỏi nhóm bằng remove_from_group(). Lệnh này có hiệu lực ngay:

func _on_body_entered(body):
	remove_from_group("coins")
	print("Coins left: ", get_tree().get_nodes_in_group("coins").size())
	queue_free()

Các dòng lệnh chạy từ trên xuống dưới, vì vậy remove_from_group phải đứng trước phần đếm.

challenge icon

Thử thách

Trung bình

Sửa số lượng xu còn lại.

  1. Trong _on_body_entered, xóa đồng xu khỏi nhóm coins trước dòng print.
  2. Dùng remove_from_group().

Nhấn Chơi và nhặt ba đồng xu: Console hiển thị Coins left: 2, Coins left: 1, rồi Coins left: 0. Sau đó nhấn Kiểm tra.

Tự làm thử

extends Area2D

func _ready():
	add_to_group("coins")
	body_entered.connect(_on_body_entered)

func _on_body_entered(body):
	print("Coins left: ", get_tree().get_nodes_in_group("coins").size())
	queue_free()

Tất cả bài học trong Tín hiệu và va chạm

Tự luyện tập: Playground Godot