This commit is contained in:
Redsandy
2026-01-18 20:56:24 +03:00
commit 7980e0add8
68 changed files with 1605294 additions and 0 deletions

53
scripts/hud.gd Normal file
View File

@@ -0,0 +1,53 @@
extends Control
class_name HUD
# HUD для отображения информации об игроке
@onready var health_bar: ProgressBar = $HealthBar
@onready var health_label: Label = $HealthBar/HealthLabel
@onready var dash_cooldown_bar: ProgressBar = $DashCooldownBar
@onready var dash_cooldown_label: Label = $DashCooldownBar/DashCooldownLabel
var player: Player = null
func _ready():
# Находим игрока в сцене
call_deferred("find_player")
func find_player():
var players = get_tree().get_nodes_in_group("player")
if players.size() > 0:
player = players[0] as Player
if player:
# Подключаемся к сигналам
player.health_changed.connect(_on_player_health_changed)
player.dash_cooldown_changed.connect(_on_dash_cooldown_changed)
# Обновляем отображение
update_health_display()
update_dash_cooldown_display()
func _on_player_health_changed(new_health: float):
update_health_display()
func _on_dash_cooldown_changed(remaining_time: float):
update_dash_cooldown_display()
func update_health_display():
if not player:
return
var health_percent = (player.health / player.max_health) * 100.0
health_bar.value = health_percent
health_label.text = "HP: %d / %d" % [int(player.health), int(player.max_health)]
func update_dash_cooldown_display():
if not player:
return
var cooldown_percent = (player.dash_cooldown_timer / player.dash_cooldown) * 100.0
dash_cooldown_bar.value = cooldown_percent
if player.dash_cooldown_timer > 0.0:
dash_cooldown_label.text = "Рывок: %.1f" % player.dash_cooldown_timer
else:
dash_cooldown_label.text = "Рывок: готов (Пробел)"