From c765368c03974aa183b415c8c8e91db33a471933 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torjus=20H=C3=A5kestad?= Date: Tue, 19 Aug 2025 14:56:22 +0200 Subject: [PATCH] game: add elapsed time to ui --- scenes/main.gd | 4 ++++ scenes/managers/main_ui.tscn | 10 +++++++++- scenes/managers/player_ui.gd | 14 ++++++++++++-- 3 files changed, 25 insertions(+), 3 deletions(-) diff --git a/scenes/main.gd b/scenes/main.gd index 8ee2b09..cf6bf72 100644 --- a/scenes/main.gd +++ b/scenes/main.gd @@ -2,11 +2,15 @@ extends Node2D @onready var main_ui: MainUI = $MainUI @onready var main_camera: Camera2D = $MainCamera +var elapsed_time: float = 0.0 func _ready(): GlobalConst.sig_debug_camera_zoom.connect(debug_zoom) Engine.time_scale = 1.0 +func _process(delta: float) -> void: + elapsed_time += delta + main_ui.player_ui.set_elapsed_time(elapsed_time) func _unhandled_input(event: InputEvent) -> void: if event.is_action_pressed("ui_cancel"): diff --git a/scenes/managers/main_ui.tscn b/scenes/managers/main_ui.tscn index 7ee7087..50d735a 100644 --- a/scenes/managers/main_ui.tscn +++ b/scenes/managers/main_ui.tscn @@ -80,10 +80,18 @@ layout_mode = 0 offset_right = 1280.0 offset_bottom = 100.0 -[node name="ProgressBar" type="ProgressBar" parent="CanvasLayer/PlayerUI/CenterContainer"] +[node name="VBoxContainer" type="VBoxContainer" parent="CanvasLayer/PlayerUI/CenterContainer"] +layout_mode = 2 + +[node name="ProgressBar" type="ProgressBar" parent="CanvasLayer/PlayerUI/CenterContainer/VBoxContainer"] custom_minimum_size = Vector2(400, 0) layout_mode = 2 +[node name="ElapsedLabel" type="Label" parent="CanvasLayer/PlayerUI/CenterContainer/VBoxContainer"] +layout_mode = 2 +text = "10:00:00" +horizontal_alignment = 2 + [node name="DebugUI" type="Control" parent="CanvasLayer"] layout_mode = 3 anchors_preset = 15 diff --git a/scenes/managers/player_ui.gd b/scenes/managers/player_ui.gd index 5bd7860..60c537e 100644 --- a/scenes/managers/player_ui.gd +++ b/scenes/managers/player_ui.gd @@ -1,8 +1,18 @@ class_name PlayerUI extends Control -@onready var hp_bar: ProgressBar = $CenterContainer/ProgressBar - +@onready var hp_bar: ProgressBar = $CenterContainer/VBoxContainer/ProgressBar +@onready var elapsed_label: Label = $CenterContainer/VBoxContainer/ElapsedLabel func set_hp(value: float): hp_bar.value = value + +func set_elapsed_time(value: float): + elapsed_label.text = format_time(value) + +func format_time(seconds: float) -> String: + var total_ms = int(seconds * 1000.0) + var s = (total_ms / 1000) % 60 + var m = (total_ms / 60000) + + return "%02d:%02d" % [m, s]