Cómo cargar y guardar la configuración en tu juego

Aquí os dejo el script que uso para guardar y cargar la configuración en mis juegos. 

Deberéis tener en cuenta estos pasos:
  • Para integrarlo en vuestro proyecto, cread un fichero de texto con cualquier aplicación y guardarlo como Config.gd (por ejemplo).
  • Este script lo tengo configurado como singleton. Para hacer esto, deberemos ir a los ajustes de proyecto y añadirlo desde la pestaña AutoLoad. Una vez hecho esto, podremos llamar a las funciones de esta manera: XXXXX.guardar_configuracion() y XXXXX.cargar_configuracion(), siendo XXXXX el nombre que le hayamos dado en AutoLoad; yo, por ejemplo, le he puesto el mismo nombre que el fichero de texto (sin la extensión, claro).
  • Volvemos otra vez a la configuración del proyecto, y en la sección Config (la primera de todas) deberemos desmarcar (en caso de que esté marcada) la casilla Use Custom User Dir, y en el cuadro de texto de Custom User Dir deberemos poner el nombre del fichero que se guardará en el ordenador o móvil del jugador (por ejemplo, datos_config).

Código del script:
extends Node

const SAVE_DIR = "user://saves/"
var ruta_configuracion = SAVE_DIR + "configuracion.dat"

#-----------------------------------

var configuracion = {
'vol_musica = 0,
'vol_efectos = 0,
'idioma = "es",
'energia = 100
'vidas = 3
}

#-----------------------------------

func _ready():
'OS.center_window()


# GUARDAR/CARGAR CONFIGURACION ---------------------------------------------

func guardar_configuracion():
'var data = {
'vol_musica = configuracion.vol_musica,
'vol_efectos = configuracion.vol_efectos,
'idioma = configuracion.idioma,
'energia = configuracion.energia,
'vidas = configuracion.vidas
'}
'
'var dir = Directory.new()
'if !dir.dir_exists(SAVE_DIR):
''dir.make_dir_recursive(SAVE_DIR)
'
'var file = File.new()
'var error = file.open(ruta_configuracion, File.WRITE)
'if error == OK:
''file.store_var(data)
''file.close()
'
'print("Configuración guardada: " + str(data) + "\n")


func cargar_configuracion():
'var file = File.new()
'if file.file_exists(ruta_configuracion):
''var error = file.open(ruta_configuracion, File.READ)
''if error == OK:
'''var cfg_datos = file.get_var()
'''configuracion = cfg_datos
'''file.close()
'
'print("Configuración cargada: " + str(configuracion) + "\n")

0 comentarios:

Publicar un comentario