From 78a61fe33c4be6b28f12d1ec9ac67df9f5db69f6 Mon Sep 17 00:00:00 2001 From: Vladimir nett00n Budylnikov Date: Sun, 3 Aug 2025 23:22:26 +0400 Subject: [PATCH] add game scene --- scenes/game.gd | 12 ++++++++++++ scenes/game.gd.uid | 1 + scenes/game.tscn | 17 +++++++++++++++++ scripts/GameManager.gd | 21 +++++++++++++++++++-- scripts/MainMenu.gd | 1 + 5 files changed, 50 insertions(+), 2 deletions(-) create mode 100644 scenes/game.gd create mode 100644 scenes/game.gd.uid create mode 100644 scenes/game.tscn diff --git a/scenes/game.gd b/scenes/game.gd new file mode 100644 index 0000000..f51204f --- /dev/null +++ b/scenes/game.gd @@ -0,0 +1,12 @@ +extends Node + +@onready var back_button: Button = $BackButtonContainer/BackButton + +func _ready() -> void: + if not back_button.pressed.is_connected(_on_back_button_pressed): + back_button.pressed.connect(_on_back_button_pressed) + +func _on_back_button_pressed() -> void: + AudioManager.play_ui_click() + GameManager.save_game() + GameManager.exit_to_main_menu() diff --git a/scenes/game.gd.uid b/scenes/game.gd.uid new file mode 100644 index 0000000..a218c43 --- /dev/null +++ b/scenes/game.gd.uid @@ -0,0 +1 @@ +uid://bvtr6yhlyuv4v diff --git a/scenes/game.tscn b/scenes/game.tscn new file mode 100644 index 0000000..3a73f1d --- /dev/null +++ b/scenes/game.tscn @@ -0,0 +1,17 @@ +[gd_scene load_steps=2 format=3 uid="uid://dmwkyeq2l7u04"] + +[ext_resource type="Script" uid="uid://bvtr6yhlyuv4v" path="res://scenes/game.gd" id="1_uwrxv"] + +[node name="Game" type="Node"] +script = ExtResource("1_uwrxv") + +[node name="BackButtonContainer" type="Control" parent="."] +layout_mode = 3 +anchors_preset = 0 +offset_right = 40.0 +offset_bottom = 40.0 + +[node name="BackButton" type="Button" parent="BackButtonContainer"] +offset_right = 45.0 +offset_bottom = 31.0 +text = "back" diff --git a/scripts/GameManager.gd b/scripts/GameManager.gd index 38c4d54..dccbee6 100644 --- a/scripts/GameManager.gd +++ b/scripts/GameManager.gd @@ -1,4 +1,21 @@ extends Node -func _ready(): - pass +const GAME_SCENE_PATH := "res://scenes/Game.tscn" +const MAIN_SCENE_PATH := "res://scenes/Main.tscn" + +func start_new_game() -> void: + var packed_scene := load(GAME_SCENE_PATH) + if not packed_scene or not packed_scene is PackedScene: + push_error("Failed to load Game scene at: %s" % GAME_SCENE_PATH) + return + get_tree().change_scene_to_packed(packed_scene) + +func save_game() -> void: + print("Game saved (mock)") + +func exit_to_main_menu() -> void: + var packed_scene := load(MAIN_SCENE_PATH) + if not packed_scene or not packed_scene is PackedScene: + push_error("Failed to load Main scene at: %s" % MAIN_SCENE_PATH) + return + get_tree().change_scene_to_packed(packed_scene) diff --git a/scripts/MainMenu.gd b/scripts/MainMenu.gd index 10dd578..ebfed14 100644 --- a/scripts/MainMenu.gd +++ b/scripts/MainMenu.gd @@ -8,6 +8,7 @@ func _ready(): func _on_new_game_button_pressed(): AudioManager.play_ui_click() print("New Game pressed") + GameManager.start_new_game() func _on_settings_button_pressed(): AudioManager.play_ui_click()