Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: FernandoNavarro en Enero 31, 2020, 08:19:57 pm

Título: Sistema de slots (guardado de partida múltiple)
Publicado por: FernandoNavarro en Enero 31, 2020, 08:19:57 pm
Hola buenas, estoy haciendo un remake del mítico The Legend of Zelda de NES, es decir el primero en orden de emisión. La cosa es que como sabrán, tiene la opción de jugar hasta tres partidas sin sobreescribir ninguna, pues estoy teniendo varios colores de cabeza con como gestionar tres slots o ranuras.

Gracias por la atención u.u
Título: Re:Sistema de slots (guardado de partida múltiple)
Publicado por: Seirlord_Games en Febrero 01, 2020, 02:37:31 am
Buenas,

Digamos que tienes 3 slots, y sabes como guardar la partida, pongamos en un archivo llamado partida.dat (la extensión da igual). Pues simplemente seria darle un nombre al archivo segun el slot;
- slot1.dat
- slot2.dat
- slot3.dat

De esta manera cuando pulses en el slot2, sabrá que tiene que guardar/cargar el slot2.dat

Un saludo
Título: Re:Sistema de slots (guardado de partida múltiple)
Publicado por: FernandoNavarro en Febrero 01, 2020, 04:53:49 am
Hola, tenía la misma idea, lo probé y funciona, pero ahora tengo otro problema con lo de la escritura del nombre, ¿qué me recomiendas, es buena idea un arreglo?
Título: Re:Sistema de slots (guardado de partida múltiple)
Publicado por: Seirlord_Games en Febrero 01, 2020, 12:51:35 pm
Podrias guardar en un archivo los nombres de cada slot.
Título: Re:Sistema de slots (guardado de partida múltiple)
Publicado por: BssString en Febrero 02, 2020, 01:00:02 am
Hola FernandoNavarro

Simplemente guarda los archivos como "slot1.dat", "slot2.dat" y "slot3.dat". Y dentro del archivo carga una String que contenga el nombre de la partida.
Como son solamente 3 slots, no veo la necesidad de crear algún Array o Data Structure, simplemente crea 3 variables diferentes y repite el código de lectura 3 veces.

Así cuando inicies el juego, primero le asignas al Slot un nombre por defecto, ejemplo "No hay partida guardada" y luego lees el nombre ingame para mostrar en el menu:
file1_name = "No hay juego guardado"
file2_name = "No hay juego guardado"
file3_name = "No hay juego guardado"
if file_exists("slot1.dat") {
//Abres el archivo con tu código
file1_name  = algn ini_read_string o file_text_read_string o como lo hayas hecho.
//Aquí cierras el archivo
}
//Repite lo mismo con los otros 2.

Si aún no creas ninguna partida en ese slot, entonces puedes dibujar la string por defecto "No hay partida guardada".

Cuando cargues un Slot, guarda el nombre del archivo en alguna variable global, para que puedas tener acceso al nombre del archivo desde cualquier objeto y desde cualquier room, así puedes guardar/cargar sobre el mismo slot en el que estás jugando sin alterar los otros 2.

Ejemplo, si cargas la tercera partida:
globalvar current_slot; current_slot = "slot3.dat"

Así a futuro simplemente llamas a la variable "current_slot" para guardar tu partida

Saludos
Título: Re:Sistema de slots (guardado de partida múltiple)
Publicado por: FernandoNavarro en Febrero 02, 2020, 08:02:32 am
Hola.

Gracias BssString, ya me implementé un sistema, sólo verifico si existe o no el archivo con file_exists, si existe y el jugador elige esa partida la carga, si no existe lo crea y ejecuta el """procedimiento""" de nueva partida