game: add elapsed time to ui

This commit is contained in:
2025-08-19 14:56:22 +02:00
parent a9ad276846
commit c765368c03
3 changed files with 25 additions and 3 deletions

View File

@@ -2,11 +2,15 @@ extends Node2D
@onready var main_ui: MainUI = $MainUI @onready var main_ui: MainUI = $MainUI
@onready var main_camera: Camera2D = $MainCamera @onready var main_camera: Camera2D = $MainCamera
var elapsed_time: float = 0.0
func _ready(): func _ready():
GlobalConst.sig_debug_camera_zoom.connect(debug_zoom) GlobalConst.sig_debug_camera_zoom.connect(debug_zoom)
Engine.time_scale = 1.0 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: func _unhandled_input(event: InputEvent) -> void:
if event.is_action_pressed("ui_cancel"): if event.is_action_pressed("ui_cancel"):

View File

@@ -80,10 +80,18 @@ layout_mode = 0
offset_right = 1280.0 offset_right = 1280.0
offset_bottom = 100.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) custom_minimum_size = Vector2(400, 0)
layout_mode = 2 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"] [node name="DebugUI" type="Control" parent="CanvasLayer"]
layout_mode = 3 layout_mode = 3
anchors_preset = 15 anchors_preset = 15

View File

@@ -1,8 +1,18 @@
class_name PlayerUI class_name PlayerUI
extends Control 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): func set_hp(value: float):
hp_bar.value = value 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]