Né tránh: Chơi lại
Thuộc phần Luật chơi trong hành trình Godot của Coddy. Bài học 29 trên 29.
Bước cuối cùng cho phép người chơi nhấn E sau khi trò chơi kết thúc để chơi lại.
Bạn đã làm điều này trong phòng gai. Đặt process_mode của Main thành Node.PROCESS_MODE_ALWAYS để _process vẫn chạy khi trò chơi tạm dừng. Trong các cảnh, người chơi, cả hai bộ hẹn giờ và mọi khối đều được đặt ở chế độ Có thể tạm dừng, vì vậy chúng vẫn dừng lại. Khi nhấn phím, bỏ tạm dừng rồi tải lại:
func _process(delta):
if lives == 0 and Input.is_action_just_pressed("action"):
get_tree().paused = false
get_tree().reload_current_scene()Thao tác tải lại sẽ xóa mọi khối, điểm số và số mạng. Đồng thời hiển thị nhãn Hint khi trò chơi kết thúc để người chơi biết cần nhấn phím nào.
Thử thách
KhóCho người chơi nhấn E để chơi lại.
- Trong
_ready(), đặtprocess_modecủa nút này thànhNode.PROCESS_MODE_ALWAYS. - Khi trò chơi kết thúc, cũng hiển thị
$HUD/Hint. - Thêm
_process(): khilivesbằng 0 vàactionvừa được nhấn, bỏ tạm dừng trò chơi và tải lại cảnh.
Nhấn Chơi, để thua rồi nhấn E: một ván mới bắt đầu với Score: 0. 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
if lives == 0:
$HUD/GameOver.visible = true
get_tree().paused = true
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ình6Dự án: Né tránh
Né tránh: Khối rơiNé tránh: Điểm sốTự luyện tập: Playground Godot