Add build directory to .gitignore, create export presets for Web and Windows Desktop, adjust z-index and mouse filter in level_1.tscn, add update_game_state function in level.gd, change main_scene path in project.godot, set rendering method to "gl_compatibility", add LevelSelect and related nodes in main_menu.tscn, create scene_manager.tscn with MainMenu node, implement functionality for menu button selection in main_menu.gd.
This commit is contained in:
parent
ca4788ce6f
commit
b6cdb68b4e
21 changed files with 499 additions and 10 deletions
|
|
@ -61,3 +61,24 @@ layout_mode = 2
|
|||
size_flags_horizontal = 4
|
||||
theme_override_font_sizes/font_size = 18
|
||||
text = "Total Points: "
|
||||
|
||||
[node name="MarginContainer" type="MarginContainer" parent="MarginContainer/CenterContainer/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
theme_override_constants/margin_left = 20
|
||||
theme_override_constants/margin_top = 20
|
||||
theme_override_constants/margin_right = 20
|
||||
theme_override_constants/margin_bottom = 20
|
||||
|
||||
[node name="VBoxContainer" type="VBoxContainer" parent="MarginContainer/CenterContainer/VBoxContainer/MarginContainer"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="TryAgain" type="Button" parent="MarginContainer/CenterContainer/VBoxContainer/MarginContainer/VBoxContainer"]
|
||||
unique_name_in_owner = true
|
||||
visible = false
|
||||
layout_mode = 2
|
||||
text = "Try Again"
|
||||
|
||||
[node name="MainMenu" type="Button" parent="MarginContainer/CenterContainer/VBoxContainer/MarginContainer/VBoxContainer"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
text = "Main Menu"
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
[gd_scene load_steps=2 format=3 uid="uid://b7eeptlk47ymd"]
|
||||
[gd_scene load_steps=3 format=3 uid="uid://b7eeptlk47ymd"]
|
||||
|
||||
[ext_resource type="Script" path="res://ui/scripts/ui_component.gd" id="1_6lnte"]
|
||||
[ext_resource type="Script" path="res://ui/scripts/pause_menu.gd" id="2_2qrdg"]
|
||||
|
||||
[node name="UiComponent" type="Control"]
|
||||
layout_mode = 3
|
||||
|
|
@ -11,6 +12,53 @@ grow_horizontal = 2
|
|||
grow_vertical = 2
|
||||
script = ExtResource("1_6lnte")
|
||||
|
||||
[node name="PauseMenu" type="Control" parent="."]
|
||||
unique_name_in_owner = true
|
||||
process_mode = 2
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
mouse_filter = 1
|
||||
script = ExtResource("2_2qrdg")
|
||||
|
||||
[node name="PauseMenuBG" type="Panel" parent="PauseMenu"]
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
|
||||
[node name="CenterContainer" type="CenterContainer" parent="PauseMenu"]
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
offset_left = -10.0
|
||||
offset_top = -10.0
|
||||
offset_right = -10.0
|
||||
offset_bottom = -10.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
|
||||
[node name="VBoxContainer" type="VBoxContainer" parent="PauseMenu/CenterContainer"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="ResumeButton" type="Button" parent="PauseMenu/CenterContainer/VBoxContainer"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
theme_override_font_sizes/font_size = 20
|
||||
text = "Resume"
|
||||
|
||||
[node name="QuitButton" type="Button" parent="PauseMenu/CenterContainer/VBoxContainer"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
theme_override_font_sizes/font_size = 20
|
||||
text = "Quit"
|
||||
|
||||
[node name="MarginContainer" type="MarginContainer" parent="."]
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
|
|
@ -18,6 +66,7 @@ anchor_right = 1.0
|
|||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
mouse_filter = 2
|
||||
theme_override_constants/margin_left = 10
|
||||
theme_override_constants/margin_top = 10
|
||||
theme_override_constants/margin_right = 10
|
||||
|
|
@ -29,6 +78,7 @@ layout_mode = 2
|
|||
|
||||
[node name="MarginContainer" type="MarginContainer" parent="MarginContainer"]
|
||||
layout_mode = 2
|
||||
mouse_filter = 2
|
||||
theme_override_constants/margin_left = 20
|
||||
theme_override_constants/margin_top = 30
|
||||
theme_override_constants/margin_right = 20
|
||||
|
|
@ -45,6 +95,7 @@ text = "00:00:00"
|
|||
[node name="HelpTextContainer" type="VBoxContainer" parent="MarginContainer/MarginContainer"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
mouse_filter = 2
|
||||
|
||||
[node name="Help_Drone_Placement_Cancel" type="Label" parent="MarginContainer/MarginContainer/HelpTextContainer"]
|
||||
visible = false
|
||||
|
|
|
|||
|
|
@ -4,9 +4,13 @@ extends Control
|
|||
@onready var drones_label = get_node("%DronesUsed")
|
||||
@onready var points_label = get_node("%TotalPoints")
|
||||
|
||||
@onready var main_menu_button = get_node("%MainMenu")
|
||||
|
||||
func _ready():
|
||||
visible = false
|
||||
|
||||
main_menu_button.connect("pressed", Callable(self, "on_main_menu_pressed"))
|
||||
|
||||
func _process(_delta):
|
||||
if GameState.level_complete == true:
|
||||
update_points()
|
||||
|
|
@ -15,4 +19,8 @@ func _process(_delta):
|
|||
func update_points():
|
||||
time_label.text = "Time Spent: " + Str.seconds_to_hms(GameState.level_timer)
|
||||
drones_label.text = "Drones Used: " + str(GameState.drones_used)
|
||||
points_label.text = "Total Points: " + Str.format_number(GameState.level_points)
|
||||
points_label.text = "Total Points: " + Str.format_number(GameState.level_points)
|
||||
|
||||
func on_main_menu_pressed():
|
||||
GameState.reset()
|
||||
SceneMgr.load_scene("MAINMENU")
|
||||
12
ui/scripts/pause_menu.gd
Normal file
12
ui/scripts/pause_menu.gd
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
extends Control
|
||||
class_name PauseMenu
|
||||
|
||||
signal resume_game
|
||||
|
||||
func _unhandled_input(event : InputEvent) -> void:
|
||||
if event.is_action_pressed("ui_cancel"):
|
||||
Log.pr("Pause Menu: ui_cancel pressed")
|
||||
if get_tree().paused:
|
||||
Log.pr("Sending unpause signal")
|
||||
resume_game.emit()
|
||||
|
||||
|
|
@ -11,14 +11,23 @@ var last_update : float = 0
|
|||
@onready var level_timer_label = get_node("%LevelTimer")
|
||||
@onready var par_text_label = get_node("%ParText")
|
||||
|
||||
func _ready():
|
||||
|
||||
var disable_pause : bool = false
|
||||
|
||||
func _ready():
|
||||
hide_help_text()
|
||||
update_ui()
|
||||
%PauseMenu.hide()
|
||||
%PauseMenu.connect("resume_game", Callable(self, "unpause_game"))
|
||||
|
||||
%QuitButton.connect("pressed", Callable(self, "quit_game"))
|
||||
%ResumeButton.connect("pressed", Callable(self, "unpause_game"))
|
||||
|
||||
func _process(delta):
|
||||
last_update += delta
|
||||
|
||||
disable_pause = false
|
||||
|
||||
if last_update > update_interval:
|
||||
last_update = 0
|
||||
update_ui()
|
||||
|
|
@ -28,6 +37,13 @@ func _process(delta):
|
|||
|
||||
level_timer_label.text = Str.seconds_to_hms(GameState.level_timer)
|
||||
|
||||
func _unhandled_input(event : InputEvent) -> void:
|
||||
if event.is_action_pressed("ui_cancel"):
|
||||
Log.pr("UIComponent: ui_cancel pressed")
|
||||
if get_tree().paused == false && disable_pause == false:
|
||||
Log.pr("Game is not paused, so pausing it...")
|
||||
pause_game()
|
||||
|
||||
func update_ui():
|
||||
nectar_bar.value = GameState.gathered_nectar
|
||||
nectar_bar.max_value = GameState.required_nectar
|
||||
|
|
@ -46,4 +62,20 @@ func update_level_text(text: String):
|
|||
level_text_label.text = text
|
||||
|
||||
func update_par_text(text: String):
|
||||
par_text_label.text = text
|
||||
par_text_label.text = text
|
||||
|
||||
func quit_game():
|
||||
get_tree().paused = false
|
||||
GameState.reset()
|
||||
SceneMgr.load_scene("MAINMENU")
|
||||
|
||||
func pause_game():
|
||||
get_tree().paused = true
|
||||
%PauseMenu.show()
|
||||
|
||||
func unpause_game():
|
||||
Log.pr("Pause Menu: Close button pressed")
|
||||
disable_pause = true
|
||||
%PauseMenu.hide()
|
||||
get_tree().paused = false
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue