Pause menu [WIP]
This commit is contained in:
parent
1c640fcd39
commit
f6ff47ce4e
6 changed files with 185 additions and 8 deletions
|
@ -2,9 +2,24 @@ extends CanvasLayer
|
||||||
class_name HUD
|
class_name HUD
|
||||||
|
|
||||||
export var coins_amount:int = 0
|
export var coins_amount:int = 0
|
||||||
|
export var PauseMenu: PackedScene;
|
||||||
onready var Lable = get_node("CoinsContainer/Label")
|
onready var Lable = get_node("CoinsContainer/Label")
|
||||||
|
|
||||||
|
var _paused = false;
|
||||||
|
var _pause_ref;
|
||||||
func on_coin_collected(amount:int):
|
func on_coin_collected(amount:int):
|
||||||
coins_amount += amount
|
coins_amount += amount
|
||||||
Lable.text = str(coins_amount)
|
Lable.text = str(coins_amount)
|
||||||
|
|
||||||
|
func _physics_process(delta: float) -> void:
|
||||||
|
if Input.is_action_just_pressed("pause"):
|
||||||
|
if _paused:
|
||||||
|
_pause_ref.dismiss()
|
||||||
|
else:
|
||||||
|
_pause_ref = PauseMenu.instance()
|
||||||
|
_pause_ref.connect("dismissed", self,"_on_pause_menu_dismissed")
|
||||||
|
add_child(_pause_ref)
|
||||||
|
_paused = true
|
||||||
|
|
||||||
|
func _on_pause_menu_dismissed():
|
||||||
|
_paused = false
|
||||||
|
|
|
@ -1,11 +1,13 @@
|
||||||
[gd_scene load_steps=4 format=2]
|
[gd_scene load_steps=5 format=2]
|
||||||
|
|
||||||
[ext_resource path="res://src/HUD/HUD.gd" type="Script" id=1]
|
[ext_resource path="res://src/HUD/HUD.gd" type="Script" id=1]
|
||||||
|
[ext_resource path="res://src/Menu/PauseMenu.tscn" type="PackedScene" id=2]
|
||||||
[ext_resource path="res://assets/Theme/Theme.tres" type="Theme" id=3]
|
[ext_resource path="res://assets/Theme/Theme.tres" type="Theme" id=3]
|
||||||
[ext_resource path="res://assets/HUD/coins_hud.png" type="Texture" id=4]
|
[ext_resource path="res://assets/HUD/coins_hud.png" type="Texture" id=4]
|
||||||
|
|
||||||
[node name="HUD" type="CanvasLayer"]
|
[node name="HUD" type="CanvasLayer"]
|
||||||
script = ExtResource( 1 )
|
script = ExtResource( 1 )
|
||||||
|
PauseMenu = ExtResource( 2 )
|
||||||
|
|
||||||
[node name="CoinsContainer" type="HBoxContainer" parent="."]
|
[node name="CoinsContainer" type="HBoxContainer" parent="."]
|
||||||
margin_left = 18.0
|
margin_left = 18.0
|
||||||
|
|
|
@ -9,8 +9,6 @@ var latest_checkpoint:CheckPoint = null
|
||||||
|
|
||||||
|
|
||||||
func _physics_process(delta: float) -> void:
|
func _physics_process(delta: float) -> void:
|
||||||
if Input.is_action_just_pressed("pause"):
|
|
||||||
get_tree().quit(0)
|
|
||||||
_update_camera(delta)
|
_update_camera(delta)
|
||||||
|
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
|
|
|
@ -21,7 +21,7 @@ tracks/0/imported = false
|
||||||
tracks/0/enabled = true
|
tracks/0/enabled = true
|
||||||
tracks/0/keys = {
|
tracks/0/keys = {
|
||||||
"times": PoolRealArray( 0, 3, 6 ),
|
"times": PoolRealArray( 0, 3, 6 ),
|
||||||
"transitions": PoolRealArray( 1, 0.277392, 0.435275 ),
|
"transitions": PoolRealArray( 0.450625, 0.277392, 0.435275 ),
|
||||||
"update": 0,
|
"update": 0,
|
||||||
"values": [ Vector2( 73, 131 ), Vector2( 63.25, 154.25 ), Vector2( 73, 131 ) ]
|
"values": [ Vector2( 73, 131 ), Vector2( 63.25, 154.25 ), Vector2( 73, 131 ) ]
|
||||||
}
|
}
|
||||||
|
@ -98,10 +98,10 @@ texture = ExtResource( 1 )
|
||||||
centered = false
|
centered = false
|
||||||
|
|
||||||
[node name="Light2D" type="Light2D" parent="Node2D/Sprite"]
|
[node name="Light2D" type="Light2D" parent="Node2D/Sprite"]
|
||||||
position = Vector2( 72.8142, 131.443 )
|
position = Vector2( 69.75, 138.75 )
|
||||||
scale = Vector2( 12.3889, 12.3889 )
|
scale = Vector2( 12.3889, 12.3889 )
|
||||||
texture = ExtResource( 3 )
|
texture = ExtResource( 3 )
|
||||||
color = Color( 0.976471, 0.515686, 0.505882, 1 )
|
color = Color( 0.976471, 0.670588, 0.503922, 1 )
|
||||||
|
|
||||||
[node name="Sprite2" type="Sprite" parent="Node2D"]
|
[node name="Sprite2" type="Sprite" parent="Node2D"]
|
||||||
light_mask = -2147483646
|
light_mask = -2147483646
|
||||||
|
@ -110,7 +110,7 @@ texture = ExtResource( 4 )
|
||||||
centered = false
|
centered = false
|
||||||
|
|
||||||
[node name="Light2D2" type="Light2D" parent="Node2D/Sprite2"]
|
[node name="Light2D2" type="Light2D" parent="Node2D/Sprite2"]
|
||||||
position = Vector2( 104.814, 154.943 )
|
position = Vector2( 101.75, 162.25 )
|
||||||
scale = Vector2( 12.3889, 12.3889 )
|
scale = Vector2( 12.3889, 12.3889 )
|
||||||
texture = ExtResource( 3 )
|
texture = ExtResource( 3 )
|
||||||
color = Color( 0.762092, 0.913725, 0.398693, 1 )
|
color = Color( 0.762092, 0.913725, 0.398693, 1 )
|
||||||
|
|
25
src/Menu/PauseMenu.gd
Normal file
25
src/Menu/PauseMenu.gd
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
extends Node2D
|
||||||
|
|
||||||
|
signal dismissed
|
||||||
|
|
||||||
|
func _ready() -> void:
|
||||||
|
$CanvasLayer/VBoxContainer/ResumeBtn.grab_focus()
|
||||||
|
|
||||||
|
func dismiss()->void:
|
||||||
|
_on_ResumeBtn_pressed()
|
||||||
|
|
||||||
|
|
||||||
|
func _on_ResumeBtn_pressed() -> void:
|
||||||
|
$AnimationPlayer.play_backwards("fade")
|
||||||
|
yield($AnimationPlayer, "animation_finished");
|
||||||
|
emit_signal("dismissed")
|
||||||
|
queue_free()
|
||||||
|
pass # Replace with function body.
|
||||||
|
|
||||||
|
|
||||||
|
func _on_ExitToMainMenuBtn_pressed() -> void:
|
||||||
|
$AnimationPlayer.play_backwards("fade")
|
||||||
|
yield($AnimationPlayer, "animation_finished");
|
||||||
|
var next_scene = load("res://src/Menu/MainMenu.tscn")
|
||||||
|
get_tree().change_scene_to(next_scene)
|
||||||
|
queue_free()
|
137
src/Menu/PauseMenu.tscn
Normal file
137
src/Menu/PauseMenu.tscn
Normal file
|
@ -0,0 +1,137 @@
|
||||||
|
[gd_scene load_steps=7 format=2]
|
||||||
|
|
||||||
|
[ext_resource path="res://assets/Theme/slkscr.ttf" type="DynamicFontData" id=1]
|
||||||
|
[ext_resource path="res://assets/SplashScreen/BLANK.png" type="Texture" id=2]
|
||||||
|
[ext_resource path="res://src/Menu/PauseMenu.gd" type="Script" id=3]
|
||||||
|
[ext_resource path="res://assets/Theme/menu_font.tres" type="DynamicFont" id=4]
|
||||||
|
|
||||||
|
[sub_resource type="DynamicFont" id=1]
|
||||||
|
size = 25
|
||||||
|
outline_size = 1
|
||||||
|
outline_color = Color( 0.427451, 0.729412, 0.745098, 0.776471 )
|
||||||
|
font_data = ExtResource( 1 )
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id=2]
|
||||||
|
resource_name = "fade"
|
||||||
|
length = 0.5
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/path = NodePath("CanvasLayer/TextureRect:self_modulate")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PoolRealArray( 0, 0.3, 0.5 ),
|
||||||
|
"transitions": PoolRealArray( 1, 1, 1 ),
|
||||||
|
"update": 0,
|
||||||
|
"values": [ Color( 1, 1, 1, 0 ), Color( 1, 1, 1, 0.752941 ), Color( 1, 1, 1, 0.752941 ) ]
|
||||||
|
}
|
||||||
|
tracks/1/type = "value"
|
||||||
|
tracks/1/path = NodePath("CanvasLayer/Label:self_modulate")
|
||||||
|
tracks/1/interp = 1
|
||||||
|
tracks/1/loop_wrap = true
|
||||||
|
tracks/1/imported = false
|
||||||
|
tracks/1/enabled = true
|
||||||
|
tracks/1/keys = {
|
||||||
|
"times": PoolRealArray( 0, 0.3, 0.5 ),
|
||||||
|
"transitions": PoolRealArray( 1, 1, 1 ),
|
||||||
|
"update": 0,
|
||||||
|
"values": [ Color( 1, 1, 1, 0 ), Color( 1, 1, 1, 0 ), Color( 1, 1, 1, 1 ) ]
|
||||||
|
}
|
||||||
|
tracks/2/type = "value"
|
||||||
|
tracks/2/path = NodePath("CanvasLayer/VBoxContainer:self_modulate")
|
||||||
|
tracks/2/interp = 1
|
||||||
|
tracks/2/loop_wrap = true
|
||||||
|
tracks/2/imported = false
|
||||||
|
tracks/2/enabled = true
|
||||||
|
tracks/2/keys = {
|
||||||
|
"times": PoolRealArray( ),
|
||||||
|
"transitions": PoolRealArray( ),
|
||||||
|
"update": 0,
|
||||||
|
"values": [ ]
|
||||||
|
}
|
||||||
|
tracks/3/type = "value"
|
||||||
|
tracks/3/path = NodePath("CanvasLayer/VBoxContainer:modulate")
|
||||||
|
tracks/3/interp = 1
|
||||||
|
tracks/3/loop_wrap = true
|
||||||
|
tracks/3/imported = false
|
||||||
|
tracks/3/enabled = true
|
||||||
|
tracks/3/keys = {
|
||||||
|
"times": PoolRealArray( 0, 0.3, 0.5 ),
|
||||||
|
"transitions": PoolRealArray( 1, 1, 1 ),
|
||||||
|
"update": 0,
|
||||||
|
"values": [ Color( 1, 1, 1, 0 ), Color( 1, 1, 1, 0 ), Color( 1, 1, 1, 1 ) ]
|
||||||
|
}
|
||||||
|
|
||||||
|
[node name="PauseMenu" type="Node2D"]
|
||||||
|
script = ExtResource( 3 )
|
||||||
|
|
||||||
|
[node name="CanvasLayer" type="CanvasLayer" parent="."]
|
||||||
|
|
||||||
|
[node name="TextureRect" type="TextureRect" parent="CanvasLayer"]
|
||||||
|
self_modulate = Color( 1, 1, 1, 0 )
|
||||||
|
margin_right = 40.0
|
||||||
|
margin_bottom = 40.0
|
||||||
|
texture = ExtResource( 2 )
|
||||||
|
__meta__ = {
|
||||||
|
"_edit_use_anchors_": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[node name="Label" type="Label" parent="CanvasLayer"]
|
||||||
|
self_modulate = Color( 1, 1, 1, 0 )
|
||||||
|
anchor_left = 0.5
|
||||||
|
anchor_right = 0.5
|
||||||
|
margin_left = -64.5
|
||||||
|
margin_top = 32.0
|
||||||
|
margin_right = 64.5
|
||||||
|
margin_bottom = 58.0
|
||||||
|
custom_fonts/font = SubResource( 1 )
|
||||||
|
text = "Pause"
|
||||||
|
align = 1
|
||||||
|
__meta__ = {
|
||||||
|
"_edit_use_anchors_": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[node name="VBoxContainer" type="VBoxContainer" parent="CanvasLayer"]
|
||||||
|
modulate = Color( 1, 1, 1, 0 )
|
||||||
|
anchor_left = 0.5
|
||||||
|
anchor_top = 0.5
|
||||||
|
anchor_right = 0.5
|
||||||
|
anchor_bottom = 0.5
|
||||||
|
margin_left = -115.0
|
||||||
|
margin_top = -46.0
|
||||||
|
margin_right = 116.0
|
||||||
|
margin_bottom = 124.0
|
||||||
|
__meta__ = {
|
||||||
|
"_edit_use_anchors_": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[node name="MarginContainer" type="MarginContainer" parent="CanvasLayer/VBoxContainer"]
|
||||||
|
margin_right = 231.0
|
||||||
|
|
||||||
|
[node name="ResumeBtn" type="Button" parent="CanvasLayer/VBoxContainer"]
|
||||||
|
margin_top = 4.0
|
||||||
|
margin_right = 231.0
|
||||||
|
margin_bottom = 31.0
|
||||||
|
custom_fonts/font = ExtResource( 4 )
|
||||||
|
text = "Resume"
|
||||||
|
|
||||||
|
[node name="NewGameBtn" type="Button" parent="CanvasLayer/VBoxContainer"]
|
||||||
|
margin_top = 35.0
|
||||||
|
margin_right = 231.0
|
||||||
|
margin_bottom = 62.0
|
||||||
|
custom_fonts/font = ExtResource( 4 )
|
||||||
|
text = "New Game"
|
||||||
|
|
||||||
|
[node name="ExitToMainMenuBtn" type="Button" parent="CanvasLayer/VBoxContainer"]
|
||||||
|
margin_top = 66.0
|
||||||
|
margin_right = 231.0
|
||||||
|
margin_bottom = 93.0
|
||||||
|
custom_fonts/font = ExtResource( 4 )
|
||||||
|
text = "Exit To Main Menu"
|
||||||
|
|
||||||
|
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
|
||||||
|
autoplay = "fade"
|
||||||
|
anims/fade = SubResource( 2 )
|
||||||
|
[connection signal="pressed" from="CanvasLayer/VBoxContainer/ResumeBtn" to="." method="_on_ResumeBtn_pressed"]
|
||||||
|
[connection signal="pressed" from="CanvasLayer/VBoxContainer/ExitToMainMenuBtn" to="." method="_on_ExitToMainMenuBtn_pressed"]
|
Loading…
Reference in a new issue