Menu
CoddyTech

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

Kế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.

challenge icon

Thử thách

Dễ

Để nhân vật chính thoát xuống cầu thang.

  1. Trong main.gd, kết nối $Exit.body_entered với một hàm.
  2. Trong hàm đó, hiển thị You escaped! trong $HUD/Message và 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
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 Dự án

Tự luyện tập: Playground Godot