Reworked pause menu
This commit is contained in:
+7
-25
@@ -1,41 +1,23 @@
|
|||||||
extends Node
|
extends Node
|
||||||
|
|
||||||
|
|
||||||
const Passage = preload("res://game/passage.tscn")
|
@onready var pause_screen : Control = $PauseScreen
|
||||||
const PauseMenu = preload("res://menu/pause_menu.tscn")
|
|
||||||
|
|
||||||
|
|
||||||
var _pause_menu: Node
|
|
||||||
var _current_passage: Node
|
|
||||||
|
|
||||||
|
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
_current_passage = Passage.instantiate()
|
pause_screen.hide()
|
||||||
add_child(_current_passage)
|
|
||||||
|
|
||||||
|
|
||||||
func _input(event: InputEvent) -> void:
|
func _input(event: InputEvent) -> void:
|
||||||
if event.is_action_pressed("pause"):
|
if event.is_action_pressed("pause"):
|
||||||
_pause_game()
|
pause_screen.show()
|
||||||
|
get_tree().paused = true
|
||||||
|
|
||||||
|
|
||||||
func _create_pause_menu() -> void:
|
func _on_pause_screen_continue_game() -> void:
|
||||||
_pause_menu = PauseMenu.instantiate()
|
pause_screen.hide()
|
||||||
add_child(_pause_menu)
|
|
||||||
_pause_menu.continue_game.connect(_unpause_game)
|
|
||||||
_pause_menu.show_main_menu.connect(_show_title_screen)
|
|
||||||
|
|
||||||
|
|
||||||
func _pause_game() -> void:
|
func _on_pause_screen_show_main_menu() -> void:
|
||||||
get_tree().paused = true
|
|
||||||
_create_pause_menu.call_deferred()
|
|
||||||
|
|
||||||
|
|
||||||
func _unpause_game() -> void:
|
|
||||||
get_tree().paused = false
|
|
||||||
_pause_menu.queue_free()
|
|
||||||
|
|
||||||
|
|
||||||
func _show_title_screen() -> void:
|
|
||||||
get_tree().paused = false
|
get_tree().paused = false
|
||||||
get_tree().change_scene_to_file("res://menu/title_screen.tscn")
|
get_tree().change_scene_to_file("res://menu/title_screen.tscn")
|
||||||
|
|||||||
+12
-2
@@ -1,6 +1,16 @@
|
|||||||
[gd_scene load_steps=2 format=3 uid="uid://dl7m4rqyj8mck"]
|
[gd_scene load_steps=4 format=3 uid="uid://dl7m4rqyj8mck"]
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://1wfu4iuddo25" path="res://game/game.gd" id="1_l1rk1"]
|
[ext_resource type="Script" uid="uid://1wfu4iuddo25" path="res://game/game.gd" id="1_l1rk1"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://d34nh3lc1gpb" path="res://menu/pause_screen.tscn" id="2_h7iqs"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://dgc0087kvarx6" path="res://game/passage.tscn" id="3_4fuuu"]
|
||||||
|
|
||||||
[node name="Game" type="Node"]
|
[node name="Game" type="Node2D"]
|
||||||
script = ExtResource("1_l1rk1")
|
script = ExtResource("1_l1rk1")
|
||||||
|
|
||||||
|
[node name="PauseScreen" parent="." instance=ExtResource("2_h7iqs")]
|
||||||
|
process_mode = 2
|
||||||
|
|
||||||
|
[node name="Passage" parent="." instance=ExtResource("3_4fuuu")]
|
||||||
|
|
||||||
|
[connection signal="continue_game" from="PauseScreen" to="." method="_on_pause_screen_continue_game"]
|
||||||
|
[connection signal="show_main_menu" from="PauseScreen" to="." method="_on_pause_screen_show_main_menu"]
|
||||||
|
|||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
extends Node
|
extends Node2D
|
||||||
|
|
||||||
|
|
||||||
const SMALL_ENEMY = preload("res://game/entities/ships/enemies/small/small_enemy_ship.tscn")
|
const SMALL_ENEMY = preload("res://game/entities/ships/enemies/small/small_enemy_ship.tscn")
|
||||||
|
|||||||
+1
-1
@@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
[sub_resource type="WorldBoundaryShape2D" id="WorldBoundaryShape2D_ltkyg"]
|
[sub_resource type="WorldBoundaryShape2D" id="WorldBoundaryShape2D_ltkyg"]
|
||||||
|
|
||||||
[node name="Passage" type="Node"]
|
[node name="Passage" type="Node2D"]
|
||||||
script = ExtResource("1_ltkyg")
|
script = ExtResource("1_ltkyg")
|
||||||
|
|
||||||
[node name="World" type="StaticBody2D" parent="."]
|
[node name="World" type="StaticBody2D" parent="."]
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ extends Control
|
|||||||
|
|
||||||
signal continue_game
|
signal continue_game
|
||||||
signal show_main_menu
|
signal show_main_menu
|
||||||
|
signal show_options
|
||||||
|
|
||||||
|
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
@@ -35,5 +36,9 @@ func _on_continue_button_pressed() -> void:
|
|||||||
continue_game.emit()
|
continue_game.emit()
|
||||||
|
|
||||||
|
|
||||||
|
func _on_options_button_pressed() -> void:
|
||||||
|
show_options.emit()
|
||||||
|
|
||||||
|
|
||||||
func _on_main_menu_button_pressed() -> void:
|
func _on_main_menu_button_pressed() -> void:
|
||||||
show_main_menu.emit()
|
show_main_menu.emit()
|
||||||
|
|||||||
@@ -1,16 +1,9 @@
|
|||||||
[gd_scene load_steps=6 format=3 uid="uid://bclo2wl8ibrcg"]
|
[gd_scene load_steps=4 format=3 uid="uid://bclo2wl8ibrcg"]
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://npqs2m5g5bd6" path="res://menu/pause_menu.gd" id="1_inj1j"]
|
[ext_resource type="Script" uid="uid://npqs2m5g5bd6" path="res://menu/pause_menu.gd" id="1_inj1j"]
|
||||||
[ext_resource type="Theme" uid="uid://dtnd3tqllufey" path="res://images/menu_button.tres" id="2_vy7sn"]
|
[ext_resource type="Theme" uid="uid://dtnd3tqllufey" path="res://images/menu_button.tres" id="2_vy7sn"]
|
||||||
|
|
||||||
[sub_resource type="InputEventAction" id="InputEventAction_inj1j"]
|
|
||||||
action = &"ui_cancel"
|
|
||||||
|
|
||||||
[sub_resource type="InputEventAction" id="InputEventAction_vy7sn"]
|
|
||||||
action = &"pause"
|
|
||||||
|
|
||||||
[sub_resource type="Shortcut" id="Shortcut_lgp46"]
|
[sub_resource type="Shortcut" id="Shortcut_lgp46"]
|
||||||
events = [SubResource("InputEventAction_inj1j"), SubResource("InputEventAction_vy7sn")]
|
|
||||||
|
|
||||||
[node name="PauseMenu" type="Control"]
|
[node name="PauseMenu" type="Control"]
|
||||||
process_mode = 2
|
process_mode = 2
|
||||||
@@ -34,6 +27,11 @@ theme = ExtResource("2_vy7sn")
|
|||||||
shortcut = SubResource("Shortcut_lgp46")
|
shortcut = SubResource("Shortcut_lgp46")
|
||||||
text = "CONTINUE"
|
text = "CONTINUE"
|
||||||
|
|
||||||
|
[node name="OptionsButton" type="Button" parent="VBoxContainer"]
|
||||||
|
layout_mode = 2
|
||||||
|
theme = ExtResource("2_vy7sn")
|
||||||
|
text = "OPTIONS"
|
||||||
|
|
||||||
[node name="MainMenuButton" type="Button" parent="VBoxContainer"]
|
[node name="MainMenuButton" type="Button" parent="VBoxContainer"]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
@@ -43,4 +41,5 @@ text = "MAIN MENU"
|
|||||||
|
|
||||||
[connection signal="visibility_changed" from="." to="." method="_on_visibility_changed"]
|
[connection signal="visibility_changed" from="." to="." method="_on_visibility_changed"]
|
||||||
[connection signal="pressed" from="VBoxContainer/ContinueButton" to="." method="_on_continue_button_pressed"]
|
[connection signal="pressed" from="VBoxContainer/ContinueButton" to="." method="_on_continue_button_pressed"]
|
||||||
|
[connection signal="pressed" from="VBoxContainer/OptionsButton" to="." method="_on_options_button_pressed"]
|
||||||
[connection signal="pressed" from="VBoxContainer/MainMenuButton" to="." method="_on_main_menu_button_pressed"]
|
[connection signal="pressed" from="VBoxContainer/MainMenuButton" to="." method="_on_main_menu_button_pressed"]
|
||||||
|
|||||||
@@ -0,0 +1,56 @@
|
|||||||
|
extends Control
|
||||||
|
|
||||||
|
|
||||||
|
signal continue_game
|
||||||
|
signal show_main_menu
|
||||||
|
|
||||||
|
|
||||||
|
@onready var pause_menu : Control = $PauseMenu
|
||||||
|
@onready var options : Control = $Options
|
||||||
|
@onready var credits : Control = $Credits
|
||||||
|
|
||||||
|
|
||||||
|
func _ready() -> void:
|
||||||
|
_show_menu(pause_menu)
|
||||||
|
|
||||||
|
|
||||||
|
func _input(event: InputEvent) -> void:
|
||||||
|
if event.is_action_pressed("pause") or event.is_action_pressed("ui_cancel"):
|
||||||
|
_on_pause_menu_continue_game.call_deferred()
|
||||||
|
|
||||||
|
|
||||||
|
func _show_menu(menu: Control) -> void:
|
||||||
|
var menus : Array[Control] = [ pause_menu, options, credits ]
|
||||||
|
|
||||||
|
for m in menus:
|
||||||
|
m.hide()
|
||||||
|
|
||||||
|
menu.show()
|
||||||
|
|
||||||
|
|
||||||
|
func _on_pause_menu_continue_game() -> void:
|
||||||
|
continue_game.emit()
|
||||||
|
|
||||||
|
|
||||||
|
func _on_pause_menu_show_main_menu() -> void:
|
||||||
|
show_main_menu.emit()
|
||||||
|
|
||||||
|
|
||||||
|
func _on_pause_menu_show_options() -> void:
|
||||||
|
_show_menu(options)
|
||||||
|
|
||||||
|
|
||||||
|
func _on_options_back() -> void:
|
||||||
|
_show_menu(pause_menu)
|
||||||
|
|
||||||
|
|
||||||
|
func _on_options_show_credits() -> void:
|
||||||
|
_show_menu(credits)
|
||||||
|
|
||||||
|
|
||||||
|
func _on_credits_back() -> void:
|
||||||
|
_show_menu(options)
|
||||||
|
|
||||||
|
|
||||||
|
func _on_visibility_changed() -> void:
|
||||||
|
get_tree().paused = visible
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
uid://c5d2t2o53wkmt
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
[gd_scene load_steps=5 format=3 uid="uid://d34nh3lc1gpb"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" uid="uid://c5d2t2o53wkmt" path="res://menu/pause_screen.gd" id="1_fe1q8"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://bclo2wl8ibrcg" path="res://menu/pause_menu.tscn" id="2_4r6ly"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://btr60idiit4y7" path="res://menu/options.tscn" id="3_3gwb3"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://c3q3g2647qc27" path="res://menu/credits.tscn" id="4_jph5s"]
|
||||||
|
|
||||||
|
[node name="PauseScreen" type="Control"]
|
||||||
|
layout_mode = 3
|
||||||
|
anchors_preset = 0
|
||||||
|
script = ExtResource("1_fe1q8")
|
||||||
|
|
||||||
|
[node name="PauseMenu" parent="." instance=ExtResource("2_4r6ly")]
|
||||||
|
layout_mode = 0
|
||||||
|
|
||||||
|
[node name="Options" parent="." instance=ExtResource("3_3gwb3")]
|
||||||
|
layout_mode = 0
|
||||||
|
|
||||||
|
[node name="Credits" parent="." instance=ExtResource("4_jph5s")]
|
||||||
|
layout_mode = 0
|
||||||
|
|
||||||
|
[connection signal="visibility_changed" from="." to="." method="_on_visibility_changed"]
|
||||||
|
[connection signal="continue_game" from="PauseMenu" to="." method="_on_pause_menu_continue_game"]
|
||||||
|
[connection signal="show_main_menu" from="PauseMenu" to="." method="_on_pause_menu_show_main_menu"]
|
||||||
|
[connection signal="show_options" from="PauseMenu" to="." method="_on_pause_menu_show_options"]
|
||||||
|
[connection signal="back" from="Options" to="." method="_on_options_back"]
|
||||||
|
[connection signal="show_credits" from="Options" to="." method="_on_options_show_credits"]
|
||||||
|
[connection signal="back" from="Credits" to="." method="_on_credits_back"]
|
||||||
Reference in New Issue
Block a user