Nhiều chông, một hàm
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 21 trên 27.
Một màn chơi có thể có nhiều chông, tất cả đều hoạt động giống nhau. Kết nối tất cả với một hàm bằng cách lặp qua nhóm của chúng:
for spike in get_tree().get_nodes_in_group("spikes"):
spike.body_entered.connect(_on_spike_body_entered)Mỗi lần lặp, vòng lặp kết nối với body_entered tiếp theo. Bạn chạm vào hàng nào thì cùng một hàm sẽ chạy và nhận đối tượng cơ thể của bạn.
Thêm hàng chông thứ năm vào nhóm mà không cần viết thêm code. Bốn hàng chông ở đây thuộc nhóm spikes.
Thử thách
Trung bìnhKhi chạm vào bất kỳ hàng gai nào, hãy đưa bạn trở về điểm xuất phát.
- Trong
_ready(), thay dòngconnectduy nhất bằng một vòng lặpforduyệt qua nhómspikes. - Bên trong vòng lặp, kết nối
body_enteredcủa từng nút với_on_spike_body_entered.
Nhấn Chơi rồi đi vào bất kỳ hàng gai nào: bạn sẽ quay lại điểm xuất phát. Sau đó nhấn Kiểm tra.
Tự làm thử
extends Node2D
func _ready():
$Spikes1.body_entered.connect(_on_spike_body_entered)
func _on_spike_body_entered(body):
body.position = Vector2(80, 280)
Tất cả bài học trong Tín hiệu và va chạm
Tự luyện tập: Playground Godot