From bfaef2f33f0f60f29918b68ce73dc9714b28cbc9 Mon Sep 17 00:00:00 2001 From: Clevertop Date: Sun, 11 Aug 2024 10:53:26 +1000 Subject: [PATCH] lose screen gui working well --- Scripts/ChronoManager.gd | 15 ++++++++----- Scripts/gui.gd | 15 ++++++++++++- gui.tscn | 46 ++++++++++++++++++++++++++++++++++++++-- 3 files changed, 68 insertions(+), 8 deletions(-) diff --git a/Scripts/ChronoManager.gd b/Scripts/ChronoManager.gd index 550fe76..d5ccdce 100644 --- a/Scripts/ChronoManager.gd +++ b/Scripts/ChronoManager.gd @@ -12,7 +12,7 @@ var tick_timer : float = 0 var room_started : bool = false var current_tick = 0 var failed : bool = false -var fail_timer : float = 3 +var fail_timer : float = 2 @export_group("Resources") @export var pedestal_off_mat : Material @@ -43,17 +43,20 @@ func _process(delta): start_room() if Input.is_action_just_pressed("reset"): + gui.show_lose_screen("Reset Pressed", 3) fail_room() if room_started and current_tick < level_time+1: tick_timer += delta if tick_timer > level_tick: #advance tick - if current_tick == 11: - #fail_room() - pass + tick_timer = 0 current_tick += 1 + if current_tick == 11: + gui.show_lose_screen("Time Expired", 3) + fail_room() + pass print("Tick: " + str(current_tick)) for i in pedestals.size(): if i+1 == current_tick: @@ -71,10 +74,11 @@ func _process(delta): chime_player.play() if failed: + gui.show_lose_screen("", fail_timer) world_env.environment.background_color = Color.DIM_GRAY fail_timer -= delta if fail_timer < 0: - fail_timer = 3 + fail_timer = 2 reset_room() else: world_env.environment.background_color = Color.WHITE @@ -128,6 +132,7 @@ func reset_room(): player.rotation_degrees = Vector3(0,0,0) player.camera.rotation_degrees = Vector3(0,0,0) + gui.hide_lose_screen() tick_timer = 0 room_started = false diff --git a/Scripts/gui.gd b/Scripts/gui.gd index fcfd7a9..da02880 100644 --- a/Scripts/gui.gd +++ b/Scripts/gui.gd @@ -1,13 +1,26 @@ extends Control @export_group("Node References") - +@export var lose_panel : PanelContainer +@export var lose_label : Label +@export var reset_label : Label # Called when the node enters the scene tree for the first time. func _ready(): + lose_panel.visible = false pass # Replace with function body. # Called every frame. 'delta' is the elapsed time since the previous frame. func _process(delta): pass + +func show_lose_screen(lose_text : String, reset_timer : float): + lose_panel.visible = true + if lose_text != "": + lose_label.text = lose_text + reset_label.text = "Resetting in: " + str(round(reset_timer*10)/10) + +func hide_lose_screen(): + lose_panel.visible = false + pass diff --git a/gui.tscn b/gui.tscn index d781a94..b12e54a 100644 --- a/gui.tscn +++ b/gui.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=4 format=3 uid="uid://bnlexkofp68gv"] +[gd_scene load_steps=6 format=3 uid="uid://bnlexkofp68gv"] [ext_resource type="Script" path="res://Scripts/gui.gd" id="1_7s0l7"] [ext_resource type="Texture2D" uid="uid://buafet16thf3p" path="res://Assets/crosshair.png" id="1_mpwvh"] @@ -6,7 +6,14 @@ [sub_resource type="LabelSettings" id="LabelSettings_lrnc3"] font_color = Color(1, 0, 0, 1) -[node name="Gui" type="Control"] +[sub_resource type="LabelSettings" id="LabelSettings_v7sqr"] +font_size = 60 + +[sub_resource type="LabelSettings" id="LabelSettings_rdkfa"] +font_size = 30 +font_color = Color(0.662452, 0.662452, 0.662452, 1) + +[node name="Gui" type="Control" node_paths=PackedStringArray("lose_panel", "lose_label", "reset_label")] layout_mode = 3 anchors_preset = 15 anchor_right = 1.0 @@ -14,8 +21,12 @@ anchor_bottom = 1.0 grow_horizontal = 2 grow_vertical = 2 script = ExtResource("1_7s0l7") +lose_panel = NodePath("MarginContainer/PanelContainer") +lose_label = NodePath("MarginContainer/PanelContainer/VBoxContainer/LoseText") +reset_label = NodePath("MarginContainer/PanelContainer/VBoxContainer/LoseTimer") [node name="Label" type="Label" parent="."] +visible = false layout_mode = 0 offset_right = 40.0 offset_bottom = 23.0 @@ -36,3 +47,34 @@ custom_minimum_size = Vector2(10, 10) layout_mode = 2 texture = ExtResource("1_mpwvh") expand_mode = 1 + +[node name="MarginContainer" type="MarginContainer" parent="."] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +theme_override_constants/margin_left = 200 +theme_override_constants/margin_top = 150 +theme_override_constants/margin_right = 200 +theme_override_constants/margin_bottom = 150 + +[node name="PanelContainer" type="PanelContainer" parent="MarginContainer"] +layout_mode = 2 + +[node name="VBoxContainer" type="VBoxContainer" parent="MarginContainer/PanelContainer"] +layout_mode = 2 +alignment = 1 + +[node name="LoseText" type="Label" parent="MarginContainer/PanelContainer/VBoxContainer"] +layout_mode = 2 +text = "Level Failed" +label_settings = SubResource("LabelSettings_v7sqr") +horizontal_alignment = 1 + +[node name="LoseTimer" type="Label" parent="MarginContainer/PanelContainer/VBoxContainer"] +layout_mode = 2 +text = "Resetting in: 3.0" +label_settings = SubResource("LabelSettings_rdkfa") +horizontal_alignment = 1