Bennu Game Development

Foros en Español => Mesa de Ayuda => Topic started by: scuws on May 29, 2010, 08:27:35 PM

Title: Como guardar en un juego
Post by: scuws on May 29, 2010, 08:27:35 PM
Pues mi pregunta es como puedo guardar los progresos de un juego.
Title: Re: Como guardar en un juego
Post by: grisendo on May 29, 2010, 08:34:31 PM
Me temo que no hay una forma inmediata de momento... ni creo que sea viable, ya que cada juego puede guardar datos distintos.

Deberías crear un fichero y almacenar en él toda la información que quieras guardar. Si das más detalles de cómo es tu juego, podríamos darte un poco más de ayuda  :)
Title: Re: Como guardar en un juego
Post by: scuws on May 29, 2010, 08:40:04 PM
Pues lo que me gustaria guardar seria algo basico, como la vida, o la posicion del protagonista y enemigos,
lo que querría saber es si hay alguna funcion para acceder a los txt, y como luego se puede usar eso.
Title: Re: Como guardar en un juego
Post by: SplinterGU on May 29, 2010, 10:16:38 PM
puedes poner todo en una estructura y usar save y load
Title: Re: Como guardar en un juego
Post by: grisendo on May 29, 2010, 10:36:13 PM
Entonces, lo que te dice Splinter: te creas una estructura para guardar los datos que quieras.

Si por ejemplo lo que quieres cargar/guardar lo tienes almacenado en las variables puntos_personaje y vidas_personaje puedes hacer (dentro de GLOBAL):

[code language="bennu"]STRUCT savedata
   int vidas;
   int puntos;
END[/code]

Para guardar:

[code language="bennu"]savedata.vidas = vidas_personaje;
savedata.puntos = puntos_personaje;
save("nombre_fichero", savedata);[/code]

Para cargar:

[code language="bennu"]
IF (file_exists("nombre_fichero")
   load("nombre_fichero", savedata);
   vidas_personaje = savedata.vidas;
   puntos_personaje = savedata.puntos;
ELSE
   say("Error: El fichero no existe");
END[/code]
Title: Re: Como guardar en un juego
Post by: Drumpi on May 30, 2010, 01:54:24 AM
El mundo de los ficheros es algo apasionante, es fácil de entender, pero largo de dominar. No sólo por los tipos de datos, y que existen tres formas distintas de guardar datos (creo que splinter añadió una cuarta en Bennu), sino porque despues te pones a crearte tus formatos propios, intentas cargar otros...

Nivel fácil: save, load.
Nivel medio: fopen, fgets, fputs, fclose.
Nivel difícil: fopen, fread, fwrite, fseek, fclose.
Nivel extra: ... pregunta a Splinter ^^U
Nivel experto: intenta cargar un BMP, un WAV...
Nivel p*** amo: cargar un GIF (animado) :D
Title: Re: Como guardar en un juego
Post by: scuws on May 30, 2010, 12:17:12 PM
Gracias por la ayuda, con esto me queda claro.
Title: Re: Como guardar en un juego
Post by: scuws on May 30, 2010, 09:01:28 PM
Lo he probado y me da un error, en

savedata.vidas = vidas_personaje;
savedata.puntos = puntos_personaje;
save("nombre_fichero", savedata);

me dice Incorrect numbers of Parameters
Function save min_Params: 0
Title: Re: Como guardar en un juego
Post by: grisendo on May 30, 2010, 09:11:41 PM
No creo que sea ese el problema, pero: ¿has incluido mod_file al principio (después de la primera línea PROGRAM)?

[code language="bennu"]IMPORT "mod_file";[/code]

Si nos escribes el código igual podemos ayudarte un poco mejor a localizar el error
Title: Re: Como guardar en un juego
Post by: scuws on May 30, 2010, 09:17:37 PM
Vale ese era el fallo, ahora todo va perfecto.

gacias por todo