Files
acrion-rog-client/scripts/hud.gd
Redsandy 7980e0add8 init
2026-01-18 20:56:24 +03:00

54 lines
1.7 KiB
GDScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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 = "Рывок: готов (Пробел)"