Ba trái tim
Thuộc phần Dự án trong hành trình Godot của Coddy. Bài học 33 trên 36.
Chạm vào lính canh sẽ mất một trái tim. Ba trái tim trên thanh trên cùng là Heart1, Heart2 và Heart3, các nút con của $HUD/Hearts. Lính canh là một Area2D, vì vậy body_entered sẽ kích hoạt khi nó chạm vào anh hùng:
func _on_enemy_body_entered(body):
health -= 1
$HUD/Hearts.get_child(health).visible = falseget_child(i) trả về nút con theo vị trí, bắt đầu đếm từ 0. Sau lần trúng đòn đầu tiên, health là 2 và get_child(2) là Heart3. Các trái tim biến mất từ bên phải.
body_entered kích hoạt một lần mỗi khi chạm. Anh hùng đứng trên đường đi của lính canh sẽ mất một trái tim mỗi lần lính canh quay lại.
Thử thách
Trung bìnhKhiến lính gác làm anh hùng mất một trái tim.
- Trong
main.gd, thêmvar health = 3và kết nối$Enemy.body_entered. - Mỗi lần chạm, giảm
healthđi một, sau đó ẩn$HUD/Hearts.get_child(health).
Nhấn “Chơi” rồi chạm vào lính gác: trái tim ngoài cùng bên phải sẽ biến mất. Sau đó nhấn “Kiểm tra”.
Tự làm thử
extends Node2D
var has_key = false
func _ready():
$Key.body_entered.connect(_on_key_body_entered)
$DoorZone.body_entered.connect(_on_door_zone_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()
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