Menu
CoddyTech

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 = true
challenge icon

Thử thách

Dễ

Biến đồng hồ đếm ngược thành cuộc đua mà bạn có thể thua.

  1. Trong _on_clock_timeout(), sau dòng cập nhật nhãn, khi time_left bằng 0, đặt $HUD/Message.text thành "Time's up!" rồi tạm dừng trò chơi.
  2. 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
quiz iconTự kiểm tra

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

Tự luyện tập: Playground Godot