Thoát khỏi hầm ngục
Thuộc phần Dự án trong hành trình Godot của Coddy. Bài học 36 trên 36.
Cầu thang ở góc xa là lối thoát. Chúng là một Area2D có tên Exit. Khi nhân vật bước lên đó, người chơi sẽ thắng:
func _on_exit_body_entered(body):
$HUD/Message.text = "You escaped!"
get_tree().paused = trueKết nối tín hiệu này trong _ready cùng với các tín hiệu khác. Phím Enter cũng bắt đầu ván mới sau khi thắng, vì thao tác khởi động lại chỉ kiểm tra xem trò chơi có đang tạm dừng hay không.
Chơi thử ngục tối của bạn. Sau đó thay đổi nó: thêm một lính canh thứ hai, di chuyển các bức tường hoặc giấu chìa khóa ở nơi khó tìm hơn.
Thử thách
DễĐể nhân vật chính thoát xuống cầu thang.
- Trong
main.gd, kết nối$Exit.body_enteredvới một hàm. - Trong hàm đó, hiển thị
You escaped!trong$HUD/Messagevà tạm dừng trò chơi.
Nhấn Chơi và đi đến cầu thang: You escaped! sẽ xuất hiện. 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 _process(delta):
if get_tree().paused and Input.is_action_just_pressed("action"):
get_tree().paused = false
get_tree().reload_current_scene()
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()
if health == 0:
$HUD/Message.text = "Game Over"
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 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