Hết trái tim
Thuộc phần Dự án trong hành trình Godot của Coddy. Bài học 35 trên 36.
Khi trái tim cuối cùng biến mất, trò chơi kết thúc. Kiểm tra xem máu có bằng 0 ngay sau khi ẩn trái tim không:
if health == 0:
$HUD/Message.text = "Game Over"
get_tree().paused = trueNhân vật chính và lính gác ở chế độ Pausable, nên chúng sẽ đóng băng. Main ở chế độ Always, nên _process tiếp tục chạy. Nó bắt đầu trò chơi mới khi người chơi nhấn Enter:
func _process(delta):
if get_tree().paused and Input.is_action_just_pressed("action"):
get_tree().paused = false
get_tree().reload_current_scene()Tải lại sẽ đặt lại mọi thứ: ba trái tim, chiếc chìa khóa trên sàn và cánh cửa bị khóa.
Thử thách
Trung bìnhKết thúc trò chơi khi hết tim.
- Khi
healthvề 0, hiển thịGame Overtrong$HUD/Messagevà tạm dừng trò chơi. - Khi trò chơi tạm dừng, nhấn Enter (
action) để tiếp tục và tải lại cảnh.
Nhấn Chơi và mất ba tim: thông báo Game Over sẽ hiện ra. Nhấn Enter để chơi lại. Sau đó nhấn Kiểm tra.
Tự làm thử
extends Node2D
var has_key = false
var health = 3
func _ready():
$Key.body_entered.connect(_on_key_body_entered)
$DoorZone.body_entered.connect(_on_door_zone_body_entered)
$Enemy.body_entered.connect(_on_enemy_body_entered)
func _on_key_body_entered(body):
has_key = true
$Key.queue_free()
$HUD/KeyIcon.visible = true
func _on_door_zone_body_entered(body):
if has_key:
$Door.queue_free()
$DoorZone.queue_free()
func _on_enemy_body_entered(body):
health -= 1
$HUD/Hearts.get_child(health).visible = false
$Hero.flash()
Tất cả bài học trong Dự án
1Dự án: Breakout
Thanh đỡ trong BreakoutGiữ thanh đỡ trong màn hình4Dự án: trò chơi khám phá hầm ngục
Khám phá hầm ngụcNhặt chìa khóaTự luyện tập: Playground Godot