Et on peut sauvegarder et charger la partie.
Et oui mon kiki
This commit is contained in:
Thomas
2025-03-29 22:28:24 +01:00
parent 95c45dcdb8
commit 8edd4bdf45
10 changed files with 98 additions and 17 deletions

13
scenes/gam6026.tmp Normal file
View File

@@ -0,0 +1,13 @@
[gd_scene load_steps=3 format=3 uid="uid://c645h6ap7niu1"]
[ext_resource type="PackedScene" uid="uid://44wla7mlivqm" path="res://UI/menu.tscn" id="1_64gp8"]
[ext_resource type="Script" path="res://scenes/game.gd" id="1_b2ju7"]
[node name="Game" type="Node2D"]
script = ExtResource("1_b2ju7")
[node name="Menu" parent="." instance=ExtResource("1_64gp8")]
[connection signal="load" from="Menu" to="." method="load_game"]
[connection signal="save" from="Menu" to="." method="save_game"]
[connection signal="start" from="Menu" to="." method="start_game"]

View File

@@ -1,27 +1,39 @@
extends Node2D
var destination_map = {
"oustide":preload("res://scenes/outside.tscn"),
}
func _unhandled_input(event: InputEvent) -> void:
if event.is_action_pressed("menu"):
open_menu()
# list of scenes
var current_scene = "menu"
var outside = null
var outside:Node2D = null
var dest_outside = preload("res://scenes/outside.tscn")
var menu = null
func start_game():
menu = get_child(0)
if outside == null:
outside = destination_map["oustide"].instantiate()
outside = dest_outside.instantiate()
add_child(outside)
remove_child(menu)
current_scene = "outside"
GameState.current_scene = "outside"
outside.load_from_game_state()
func open_menu():
remove_child(outside)
add_child(menu)
current_scene = "menu"
func load_game():
var save_file = FileAccess.open("user://savegame.save", FileAccess.READ)
var json_string = ""
while save_file.get_position() < save_file.get_length():
json_string += save_file.get_line()
var json = JSON.new()
if json.parse(json_string) == OK:
print("load", json.data)
GameState.load_save(json.data)
func save_game():
var save_file = FileAccess.open("user://savegame.save", FileAccess.WRITE)
save_file.store_line(JSON.stringify(GameState.save()))
print(OS.get_data_dir())
save_file.close()

View File

@@ -8,4 +8,6 @@ script = ExtResource("1_b2ju7")
[node name="Menu" parent="." instance=ExtResource("1_64gp8")]
[connection signal="load" from="Menu" to="." method="load_game"]
[connection signal="save" from="Menu" to="." method="save_game"]
[connection signal="start" from="Menu" to="." method="start_game"]

9
scenes/outside.gd Normal file
View File

@@ -0,0 +1,9 @@
extends Node2D
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
load_from_game_state()
func load_from_game_state():
$world/player.set_feet_global_position(GameState.player_positions)

View File

@@ -1,5 +1,6 @@
[gd_scene load_steps=8 format=3 uid="uid://b4ydi1vv8dvwr"]
[gd_scene load_steps=9 format=3 uid="uid://b4ydi1vv8dvwr"]
[ext_resource type="Script" path="res://scenes/outside.gd" id="1_wyh83"]
[ext_resource type="PackedScene" uid="uid://d1oqt6sbjvopi" path="res://maps/world.tscn" id="1_ysg4m"]
[ext_resource type="PackedScene" uid="uid://bleadp4yrdgj" path="res://caracters/bob/bob.tscn" id="2_vbahy"]
[ext_resource type="PackedScene" uid="uid://vclpg4e4ql54" path="res://caracters/player/player.tscn" id="3_bt1tp"]
@@ -19,6 +20,7 @@ _data = {
point_count = 20
[node name="scene1" type="Node2D"]
script = ExtResource("1_wyh83")
[node name="world" parent="." instance=ExtResource("1_ysg4m")]