Chạy đua với thời gian
Thuộc phần Luật chơi trong hành trình Godot của Coddy. Bài học 24 trên 29.
Đồng hồ đếm ngược không làm gì khi về 0 mà vẫn tiếp tục chạy đến -1, -2. Hãy thêm các quy tắc:
- Khi thời gian về 0, người chơi thua. Hiển thị
Time's up!và dừng trò chơi. - Nếu người chơi chạm cờ trước, họ thắng. Hiển thị
You win!và dừng trò chơi.
Dừng trò chơi bằng get_tree().paused = true. Việc tạm dừng sẽ dừng đồng hồ, nên thời gian giữ nguyên tại thời điểm kết thúc. Việc này cũng dừng người chơi, nên không ai có thể thắng sau khi hết giờ.
if time_left == 0:
$HUD/Message.text = "Time's up!"
get_tree().paused = trueThử thách
DễBiến đồng hồ đếm ngược thành cuộc đua mà bạn có thể thua.
- Trong
_on_clock_timeout(), sau dòng cập nhật nhãn, khitime_leftbằng 0, đặt$HUD/Message.textthành"Time's up!"rồi tạm dừng trò chơi. - Trong
_on_goal_body_entered(body), tạm dừng trò chơi sau"You win!".
Nhấn Chơi rồi chờ: khi Time: 0, trò chơi dừng lại với thông báo Time's up! Sau đó nhấn Kiểm tra.
Tự làm thử
extends Node2D
var time_left = 10
func _ready():
$HUD/Time.text = "Time: %d" % time_left
$Goal.body_entered.connect(_on_goal_body_entered)
$Clock.timeout.connect(_on_clock_timeout)
func _on_goal_body_entered(body):
if body.is_in_group("player"):
$HUD/Message.text = "You win!"
func _on_clock_timeout():
time_left -= 1
$HUD/Time.text = "Time: %d" % time_left
Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.
Tất cả bài học trong Luật chơi
2Hiển thị điểm trên màn hình
Một nhãn trên màn hìnhChuyển số thành văn bảnĐịnh dạng bằng phần trămCập nhật nhãnĐồng hồ trên màn hìnhTự luyện tập: Playground Godot