Menu
CoddyTech

Người gom xu: Số 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 26 trên 27.

Main cần biết còn bao nhiêu đồng xu. Hãy lưu số lượng trong một biến ở đầu main.gd. Đếm nhóm một lần lúc bắt đầu, sau đó trừ đi một mỗi khi nhặt được đồng xu:

var coins_left = 0

func _ready():
	coins_left = get_tree().get_nodes_in_group("coins").size()

Tại sao không đếm nhóm trong _on_coin_collected? Đồng xu gửi tín hiệu collected ngay trước khi tự giải phóng. Nó vẫn thuộc nhóm cho đến hết khung hình, nên số lượng đếm được sẽ bao gồm cả nó.

Biến chỉ thay đổi khi bạn thay đổi nó.

challenge icon

Thử thách

Trung bình

Cho Main đếm số xu còn lại.

  1. Ở đầu main.gd, thêm var coins_left = 0, rồi trong _ready(), đặt giá trị này bằng kích thước của nhóm coins.
  2. Trong _on_coin_collected(), giảm giá trị đi một và in ra thay cho Got a coin!: print("Coins left: ", coins_left).

Nhấn Chơi và nhặt một đồng xu: Console hiển thị Coins left: 5. Sau đó nhấn Kiểm tra.

Tự làm thử

extends Node2D

func _ready():
	for coin in get_tree().get_nodes_in_group("coins"):
		coin.collected.connect(_on_coin_collected)

func _on_coin_collected():
	print("Got a coin!")

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

Tự luyện tập: Playground Godot