Como guardar en un juego

Started by scuws, May 29, 2010, 08:27:35 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

scuws

Pues mi pregunta es como puedo guardar los progresos de un juego.

grisendo

#1
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  :)

scuws

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.

SplinterGU

puedes poner todo en una estructura y usar save y load
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

grisendo

#4
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]

Drumpi

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
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

scuws

Gracias por la ayuda, con esto me queda claro.

scuws

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

grisendo

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

scuws

Vale ese era el fallo, ahora todo va perfecto.

gacias por todo