Né tránh: Kết thúc trò chơi
Thuộc phần Luật chơi trong hành trình Godot của Coddy. Bài học 28 trên 29.
Khi số mạng bằng 0, trò chơi vẫn tiếp diễn. Điểm số vẫn tăng và số mạng giảm xuống dưới 0.
Kết thúc trò chơi như bạn đã làm trong căn phòng có gai. Hiện nhãn GameOver đang ẩn và tạm dừng trò chơi. Việc tạm dừng sẽ dừng cả hai bộ đếm thời gian, nên điểm số giữ nguyên ở số giây bạn đã sống sót. Các khối dừng lại tại vị trí hiện tại.
if lives == 0:
$HUD/GameOver.visible = true
get_tree().paused = trueThử thách
Trung bìnhKết thúc trò chơi khi hết mạng.
- Trong
_on_player_hurt(), sau dòng cập nhật nhãn, kiểm tra xemlivescó bằng 0 không. - Nếu có, hiển thị
$HUD/GameOvervà tạm dừng trò chơi.
Nhấn Chơi và để nhân vật bị trúng đòn ba lần: Game Over sẽ hiện ra và các khối sẽ dừng lại. Sau đó nhấn Kiểm tra.
Tự làm thử
extends Node2D
var block_scene = preload("res://block.tscn")
var score = 0
var lives = 3
func _ready():
$HUD/Score.text = "Score: %d" % score
$HUD/Lives.text = "Lives: %d" % lives
$SpawnTimer.timeout.connect(_on_spawn_timer_timeout)
$ScoreTimer.timeout.connect(_on_score_timer_timeout)
$Player.hurt.connect(_on_player_hurt)
func _on_spawn_timer_timeout():
var block = block_scene.instantiate()
block.position = Vector2(randf_range(40, 600), -30)
add_child(block)
func _on_score_timer_timeout():
score += 1
$HUD/Score.text = "Score: %d" % score
func _on_player_hurt():
lives -= 1
$HUD/Lives.text = "Lives: %d" % lives
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ình6Dự án: Né tránh
Né tránh: Khối rơiNé tránh: Điểm sốTự luyện tập: Playground Godot