Salvarea și Încărcarea Datelor Locale de Joc: FileAccess (JSON) și user:// în GDScript (Godot Engine)

Ghid complet pentru persistența datelor în Godot 4: directorul securizat user://, salvarea dicționarelor în format JSON prin FileAccess și gestionarea erorilor de fișiere.

Sintaxă
var f = FileAccess.open("user://save.json", FileAccess.WRITE); f.store_string(json)

Godot utilizează două scheme speciale de căi de fișiere: res:// (fișierele resursă read-only din proiect) și user:// (directorul de date al utilizatorului cu drepturi de scriere gestionat nativ de sistemul de operare). În Godot 4, lucrul cu fișiere se realizează prin clasa statică FileAccess.

Salvarea și încărcarea progresului în format JSON
extends Node

const CALE_SALVARE = "user://salvare_joc.json"

# 1. Salvarea dicționarului de date pe disc:
func salveaza_progres(date_joc: Dictionary) -> bool:
    var fisier = FileAccess.open(CALE_SALVARE, FileAccess.WRITE)
    if not fisier:
        push_error("Eroare la deschiderea fișierului de salvare: %d" % FileAccess.get_open_error())
        return false

    var sir_json = JSON.stringify(date_joc, "\t")
    fisier.store_string(sir_json)
    fisier.close()
    print("Joc salvat cu succes în %s!" % CALE_SALVARE)
    return true

# 2. Încărcarea datelor salvate:
func incarca_progres() -> Dictionary:
    if not FileAccess.file_exists(CALE_SALVARE):
        print("Niciun fișier de salvare găsit. Se pornește un joc nou.")
        return {}

    var fisier = FileAccess.open(CALE_SALVARE, FileAccess.READ)
    var continut = fisier.get_as_text()
    fisier.close()

    var rezultat_json = JSON.parse_string(continut)
    if rezultat_json is Dictionary:
        return rezultat_json
    return {}
Comunitate & Schimb de cunoștințe

Întrebări & Exemple de Cod: Salvarea și Încărcarea Datelor Locale de Joc: FileAccess (JSON) și user://

Ai o nelămurire despre utilizarea comenzii Salvarea și Încărcarea Datelor Locale de Joc: FileAccess (JSON) și user:// sau ai descoperit un truc / fragment de cod util? Distribuie-l cu ceilalți programatori!

💬

Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!

Nu au fost adăugate încă întrebări sau exemple de cod pentru această pagină. Dacă ai întâlnit o problemă sau ai un snippet util, adaugă-l mai jos pentru a-i ajuta pe ceilalți.

Comunitate Adaugă o întrebare sau distribuie un cod

Moderare & Siguranță:

Pentru a menține calitatea și securitatea informațiilor, fiecare întrebare sau fragment de cod/prompt este analizat (manual sau prin moderare asistată de AI) înainte de publicare.