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]