game: add elapsed time to ui
This commit is contained in:
@@ -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"):
|
||||
|
@@ -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
|
||||
|
@@ -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]
|
||||
|
Reference in New Issue
Block a user