diff --git a/Main.tscn b/Main.tscn deleted file mode 100644 index 1ae6ff4..0000000 --- a/Main.tscn +++ /dev/null @@ -1,13 +0,0 @@ -[gd_scene load_steps=4 format=2] - -[ext_resource path="res://Main.gd" type="Script" id=1] -[ext_resource path="res://UI.tscn" type="PackedScene" id=3] -[ext_resource path="res://mini-game/MiniGame.tscn" type="PackedScene" id=4] - -[node name="Main" type="Node"] -script = ExtResource( 1 ) - -[node name="MiniGame" parent="." instance=ExtResource( 4 )] - -[node name="UI" parent="." instance=ExtResource( 3 )] -[connection signal="game_over" from="MiniGame" to="." method="_on_MiniGame_game_over"] diff --git a/fonts/ButtonFont.tres b/fonts/ButtonFont.tres new file mode 100644 index 0000000..84248ed --- /dev/null +++ b/fonts/ButtonFont.tres @@ -0,0 +1,7 @@ +[gd_resource type="DynamicFont" load_steps=2 format=2] + +[ext_resource path="res://fonts/open-sans/OpenSans-Regular.ttf" type="DynamicFontData" id=1] + +[resource] +size = 30 +font_data = ExtResource( 1 ) diff --git a/mini-game/ressources/font/open-sans/LICENSE.txt b/fonts/open-sans/LICENSE.txt similarity index 100% rename from mini-game/ressources/font/open-sans/LICENSE.txt rename to fonts/open-sans/LICENSE.txt diff --git a/mini-game/ressources/font/open-sans/OpenSans-Bold.ttf b/fonts/open-sans/OpenSans-Bold.ttf similarity index 100% rename from mini-game/ressources/font/open-sans/OpenSans-Bold.ttf rename to fonts/open-sans/OpenSans-Bold.ttf diff --git a/mini-game/ressources/font/open-sans/OpenSans-BoldItalic.ttf b/fonts/open-sans/OpenSans-BoldItalic.ttf similarity index 100% rename from mini-game/ressources/font/open-sans/OpenSans-BoldItalic.ttf rename to fonts/open-sans/OpenSans-BoldItalic.ttf diff --git a/mini-game/ressources/font/open-sans/OpenSans-ExtraBold.ttf b/fonts/open-sans/OpenSans-ExtraBold.ttf similarity index 100% rename from mini-game/ressources/font/open-sans/OpenSans-ExtraBold.ttf rename to fonts/open-sans/OpenSans-ExtraBold.ttf diff --git a/mini-game/ressources/font/open-sans/OpenSans-ExtraBoldItalic.ttf b/fonts/open-sans/OpenSans-ExtraBoldItalic.ttf similarity index 100% rename from mini-game/ressources/font/open-sans/OpenSans-ExtraBoldItalic.ttf rename to fonts/open-sans/OpenSans-ExtraBoldItalic.ttf diff --git a/mini-game/ressources/font/open-sans/OpenSans-Italic.ttf b/fonts/open-sans/OpenSans-Italic.ttf similarity index 100% rename from mini-game/ressources/font/open-sans/OpenSans-Italic.ttf rename to fonts/open-sans/OpenSans-Italic.ttf diff --git a/mini-game/ressources/font/open-sans/OpenSans-Light.ttf b/fonts/open-sans/OpenSans-Light.ttf similarity index 100% rename from mini-game/ressources/font/open-sans/OpenSans-Light.ttf rename to fonts/open-sans/OpenSans-Light.ttf diff --git a/mini-game/ressources/font/open-sans/OpenSans-LightItalic.ttf b/fonts/open-sans/OpenSans-LightItalic.ttf similarity index 100% rename from mini-game/ressources/font/open-sans/OpenSans-LightItalic.ttf rename to fonts/open-sans/OpenSans-LightItalic.ttf diff --git a/mini-game/ressources/font/open-sans/OpenSans-Regular.ttf b/fonts/open-sans/OpenSans-Regular.ttf similarity index 100% rename from mini-game/ressources/font/open-sans/OpenSans-Regular.ttf rename to fonts/open-sans/OpenSans-Regular.ttf diff --git a/mini-game/ressources/font/open-sans/OpenSans-Semibold.ttf b/fonts/open-sans/OpenSans-Semibold.ttf similarity index 100% rename from mini-game/ressources/font/open-sans/OpenSans-Semibold.ttf rename to fonts/open-sans/OpenSans-Semibold.ttf diff --git a/mini-game/ressources/font/open-sans/OpenSans-SemiboldItalic.ttf b/fonts/open-sans/OpenSans-SemiboldItalic.ttf similarity index 100% rename from mini-game/ressources/font/open-sans/OpenSans-SemiboldItalic.ttf rename to fonts/open-sans/OpenSans-SemiboldItalic.ttf diff --git a/images/pause.png b/images/pause.png index 38359d2..ff7968b 100644 Binary files a/images/pause.png and b/images/pause.png differ diff --git a/images/pause.svg b/images/pause.svg index b3e13cc..192611d 100644 --- a/images/pause.svg +++ b/images/pause.svg @@ -15,8 +15,8 @@ inkscape:version="1.0.2 (1.0.2+r75+1)" sodipodi:docname="pause.svg" inkscape:export-filename="/home/vergnet/Godot/pir-serious-game-ethics/images/pause.png" - inkscape:export-xdpi="4.0640001" - inkscape:export-ydpi="4.0640001"> + inkscape:export-xdpi="8.1280003" + inkscape:export-ydpi="8.1280003"> image/svg+xml - + @@ -122,7 +122,7 @@ x="30.616072" y="7.5595241" inkscape:path-effect="#path-effect12" - d="M 30.616072,7.5595241 H 81.642859 V 180.67262 H 30.616072 Z m -28.8955677,0 H -49.306282 V 180.67262 H 1.7205043 Z" + d="M 30.616072,7.5595241 H 81.642859 V 180.67262 H 30.616072 Z m -51.24897,0 H -71.659685 V 180.67262 h 51.026787 z" sodipodi:type="rect" transform="matrix(0.97264845,0,0,1,95.144941,5.8839269)" /> diff --git a/mini-game/scenes/decor/foreground.gd b/mini-game/scenes/decor/foreground.gd index b371466..afec207 100644 --- a/mini-game/scenes/decor/foreground.gd +++ b/mini-game/scenes/decor/foreground.gd @@ -2,8 +2,18 @@ extends Node2D onready var texture : TextureRect = $TextureRect +var moving = false + func stop(): + moving = false texture.material.set_shader_param("scroll_speed", 0) func start(): + moving = true texture.material.set_shader_param("scroll_speed", 0.2) + +func _process(delta): + if get_tree().paused and moving: + stop() + elif not get_tree().paused and not moving: + start() diff --git a/mini-game/scenes/decor/foreground.tscn b/mini-game/scenes/decor/foreground.tscn index d366101..b525352 100644 --- a/mini-game/scenes/decor/foreground.tscn +++ b/mini-game/scenes/decor/foreground.tscn @@ -24,6 +24,7 @@ shader_param/scroll_speed = 0.0 extents = Vector2( 958.398, 78.6175 ) [node name="foreground" type="Node2D"] +pause_mode = 2 script = ExtResource( 1 ) [node name="TextureRect" type="TextureRect" parent="."] diff --git a/project.godot b/project.godot index e2999ff..0758860 100644 --- a/project.godot +++ b/project.godot @@ -45,7 +45,7 @@ _global_script_class_icons={ [application] config/name="Pir-serious-game-ethics" -run/main_scene="res://Main.tscn" +run/main_scene="res://scenes/Main.tscn" config/icon="res://icon.png" [autoload] diff --git a/Main.gd b/scenes/Main.gd similarity index 100% rename from Main.gd rename to scenes/Main.gd diff --git a/scenes/Main.tscn b/scenes/Main.tscn new file mode 100644 index 0000000..3e561c1 --- /dev/null +++ b/scenes/Main.tscn @@ -0,0 +1,13 @@ +[gd_scene load_steps=4 format=2] + +[ext_resource path="res://scenes/Main.gd" type="Script" id=1] +[ext_resource path="res://scenes/UI.tscn" type="PackedScene" id=2] +[ext_resource path="res://mini-game/MiniGame.tscn" type="PackedScene" id=3] + +[node name="Main" type="Node"] +script = ExtResource( 1 ) + +[node name="MiniGame" parent="." instance=ExtResource( 3 )] + +[node name="UI" parent="." instance=ExtResource( 2 )] +[connection signal="game_over" from="MiniGame" to="." method="_on_MiniGame_game_over"] diff --git a/scenes/PauseMenu.gd b/scenes/PauseMenu.gd new file mode 100644 index 0000000..80a77d2 --- /dev/null +++ b/scenes/PauseMenu.gd @@ -0,0 +1,31 @@ +extends Control + +func pause(): + get_tree().paused = true + show() + + +func unpause(): + get_tree().paused = false + hide() + + +func _ready(): + connect("gui_input", self, '_on_gui_input') + +func _input(event: InputEvent): + if event.is_action_pressed("ui_cancel") and visible: + unpause() + get_tree().set_input_as_handled() + + +func _on_BackgroundButton_pressed(): + unpause() + + +func _on_ContinueButton_pressed(): + unpause() + + +func _on_ExitButton_pressed(): + get_tree().quit(0) diff --git a/scenes/PauseMenu.tscn b/scenes/PauseMenu.tscn new file mode 100644 index 0000000..5b10c25 --- /dev/null +++ b/scenes/PauseMenu.tscn @@ -0,0 +1,118 @@ +[gd_scene load_steps=6 format=2] + +[ext_resource path="res://scenes/PauseMenu.gd" type="Script" id=1] +[ext_resource path="res://images/pause.png" type="Texture" id=2] +[ext_resource path="res://fonts/ButtonFont.tres" type="DynamicFont" id=3] +[ext_resource path="res://fonts/open-sans/OpenSans-Light.ttf" type="DynamicFontData" id=4] + +[sub_resource type="DynamicFont" id=1] +size = 50 +font_data = ExtResource( 4 ) + +[node name="PauseMenu" type="Control"] +pause_mode = 2 +anchor_right = 1.0 +anchor_bottom = 1.0 +script = ExtResource( 1 ) +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Background" type="ColorRect" parent="."] +anchor_right = 1.0 +anchor_bottom = 1.0 +color = Color( 0, 0, 0, 0.196078 ) +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="BackgroundButton" type="TextureButton" parent="."] +anchor_right = 1.0 +anchor_bottom = 1.0 +expand = true +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="MarginContainer" type="MarginContainer" parent="."] +anchor_right = 1.0 +anchor_bottom = 1.0 +mouse_filter = 2 +custom_constants/margin_right = 400 +custom_constants/margin_top = 100 +custom_constants/margin_left = 400 +custom_constants/margin_bottom = 100 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="ColorRect" type="ColorRect" parent="MarginContainer"] +margin_left = 400.0 +margin_top = 100.0 +margin_right = 1520.0 +margin_bottom = 980.0 +color = Color( 0.164706, 0.180392, 0.196078, 1 ) + +[node name="MarginContainer2" type="MarginContainer" parent="MarginContainer/ColorRect"] +anchor_right = 1.0 +anchor_bottom = 1.0 +custom_constants/margin_right = 50 +custom_constants/margin_top = 50 +custom_constants/margin_left = 50 +custom_constants/margin_bottom = 50 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="VBoxContainer" type="VBoxContainer" parent="MarginContainer/ColorRect/MarginContainer2"] +margin_left = 50.0 +margin_top = 50.0 +margin_right = 1070.0 +margin_bottom = 830.0 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="CenterContainer" type="CenterContainer" parent="MarginContainer/ColorRect/MarginContainer2/VBoxContainer"] +margin_right = 1020.0 +margin_bottom = 64.0 + +[node name="TextureRect" type="TextureRect" parent="MarginContainer/ColorRect/MarginContainer2/VBoxContainer/CenterContainer"] +margin_left = 478.0 +margin_right = 542.0 +margin_bottom = 64.0 +texture = ExtResource( 2 ) + +[node name="Text" type="Label" parent="MarginContainer/ColorRect/MarginContainer2/VBoxContainer"] +margin_top = 68.0 +margin_right = 1020.0 +margin_bottom = 728.0 +size_flags_vertical = 3 +custom_fonts/font = SubResource( 1 ) +text = "Le jeu est en pause" +align = 1 +valign = 1 + +[node name="HBoxContainer" type="HBoxContainer" parent="MarginContainer/ColorRect/MarginContainer2/VBoxContainer"] +margin_top = 732.0 +margin_right = 1020.0 +margin_bottom = 780.0 +custom_constants/separation = 50 +alignment = 1 + +[node name="ExitButton" type="Button" parent="MarginContainer/ColorRect/MarginContainer2/VBoxContainer/HBoxContainer"] +margin_left = 353.0 +margin_right = 465.0 +margin_bottom = 48.0 +custom_fonts/font = ExtResource( 3 ) +text = "Quitter" + +[node name="ContinueButton" type="Button" parent="MarginContainer/ColorRect/MarginContainer2/VBoxContainer/HBoxContainer"] +margin_left = 515.0 +margin_right = 666.0 +margin_bottom = 48.0 +custom_fonts/font = ExtResource( 3 ) +text = "Continuer" +[connection signal="pressed" from="BackgroundButton" to="." method="_on_BackgroundButton_pressed"] +[connection signal="pressed" from="MarginContainer/ColorRect/MarginContainer2/VBoxContainer/HBoxContainer/ExitButton" to="." method="_on_ExitButton_pressed"] +[connection signal="pressed" from="MarginContainer/ColorRect/MarginContainer2/VBoxContainer/HBoxContainer/ContinueButton" to="." method="_on_ContinueButton_pressed"] diff --git a/scenes/UI.gd b/scenes/UI.gd new file mode 100644 index 0000000..c519241 --- /dev/null +++ b/scenes/UI.gd @@ -0,0 +1,5 @@ +extends Control + + +func _on_TextureButton_pressed(): + $PauseMenu.pause() diff --git a/UI.tscn b/scenes/UI.tscn similarity index 61% rename from UI.tscn rename to scenes/UI.tscn index ef28ac1..4478a6a 100644 --- a/UI.tscn +++ b/scenes/UI.tscn @@ -1,6 +1,8 @@ -[gd_scene load_steps=2 format=2] +[gd_scene load_steps=4 format=2] [ext_resource path="res://images/pause.png" type="Texture" id=1] +[ext_resource path="res://scenes/PauseMenu.tscn" type="PackedScene" id=2] +[ext_resource path="res://scenes/UI.gd" type="Script" id=3] [node name="UI" type="Control"] anchor_right = 1.0 @@ -8,6 +10,7 @@ anchor_bottom = 1.0 margin_top = -0.471939 margin_bottom = -0.471924 mouse_filter = 2 +script = ExtResource( 3 ) __meta__ = { "_edit_use_anchors_": false } @@ -27,7 +30,7 @@ __meta__ = { margin_left = 10.0 margin_top = 10.0 margin_right = 1910.0 -margin_bottom = 42.0 +margin_bottom = 74.0 hint_tooltip = "Mettre en pause" size_flags_horizontal = 3 __meta__ = { @@ -35,7 +38,7 @@ __meta__ = { } [node name="Label" type="Label" parent="MarginContainer/HBoxContainer"] -margin_right = 1864.0 +margin_right = 1832.0 margin_bottom = 14.0 size_flags_horizontal = 3 size_flags_vertical = 0 @@ -45,7 +48,20 @@ __meta__ = { } [node name="TextureButton" type="TextureButton" parent="MarginContainer/HBoxContainer"] -margin_left = 1868.0 +margin_left = 1836.0 margin_right = 1900.0 -margin_bottom = 32.0 +margin_bottom = 64.0 texture_normal = ExtResource( 1 ) + +[node name="ColorRect" type="ColorRect" parent="MarginContainer/HBoxContainer/TextureButton"] +show_behind_parent = true +anchor_right = 1.0 +anchor_bottom = 1.0 +mouse_filter = 2 +color = Color( 0, 0, 0, 0.231373 ) +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="PauseMenu" parent="." instance=ExtResource( 2 )] +[connection signal="pressed" from="MarginContainer/HBoxContainer/TextureButton" to="." method="_on_TextureButton_pressed"]