Điểm lưu
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 20 trên 27.
Điểm lưu tiến trình thay đổi nơi các gai đưa bạn đến. Vì vậy, biến điểm bắt đầu được đặt ở đầu main.gd, nơi mọi hàm đều có thể truy cập:
var start_point = Vector2(80, 280)
func _on_spikes_body_entered(body):
body.position = start_pointCác gai đưa bạn đến vị trí mà start_point lưu tại thời điểm đó. Thay đổi biến này, lần va chạm tiếp theo sẽ đưa bạn đến vị trí mới.
Thay đổi biến bằng start_point = .... Viết var start_point = ... bên trong một hàm sẽ tạo ra một biến mới chỉ tồn tại trong hàm đó. Biến ở đầu tệp vẫn giữ nguyên.
Thử thách
Trung bìnhBiến lá cờ thành điểm lưu.
- Trong
_on_checkpoint_body_entered, gán$Checkpoint.positionchostart_point, không dùngvar. - Đổi màu lá cờ thành xanh bạc hà:
$Checkpoint.modulate = Color(0.49, 0.95, 0.75).
Nhấn Chơi, chạm vào lá cờ rồi chạm vào gai nhọn: bạn sẽ quay lại lá cờ. Sau đó nhấn Kiểm tra.
Tự làm thử
extends Node2D
var start_point = Vector2(80, 280)
func _ready():
$Spikes.body_entered.connect(_on_spikes_body_entered)
$Checkpoint.body_entered.connect(_on_checkpoint_body_entered)
func _on_spikes_body_entered(body):
body.position = start_point
func _on_checkpoint_body_entered(body):
pass
Tất cả bài học trong Tín hiệu và va chạm
Tự luyện tập: Playground Godot