Anuncios Google

¿guardar,cargar?ayuda.

Hola es que estoy haciendo un juego pero aun no entendi como guardar y cargar partidas para asi no tener que empezar,lo que quiero decir es si alguien me explica como guardar varias variables en un archivo txt y que habria que poner en el archivo txt y como cargar la variable guardada en el archivo txt despues.

se que es un lio pero por eso lo pregunto.

salu2



Anuncios Google

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de david_____david

sube tu juego cuando ste

sube tu juego cuando ste terminado a esta pagina web

jeje

Imagen de The Dark Master

al juego que le voy a

al juego que le voy a agregar esto de guardar es al genesis war y al hybbox,jeje,ambos estan subidos.

salu2

Imagen de david_____david

jeje bueno jeje buen

jeje

bueno

jeje

buen trabajo

 

Imagen de The Dark Master

jaja,estay apunto de

jaja,estay apunto de estrenar la v2.0 de genesis war,poruqe el bug de la fefensa hace que la 1.0 se quede inutil.

salu2

Imagen de david_____david

weno tusige a ver si lo

weno tusige a ver si lo consiges y llega a ir bn del to

suerte!!!

Imagen de The Dark Master

pues la 2.0 esta quedando

pues la 2.0 esta quedando tela de bien,explendida,con una nueva cosa que hara que todos pasen tiempo en mi homebrew,ademas de esa mejora esta tambien la batalla sin bugs(ahora podras ganar a sonic)y habra niveles y sonido.

salu2


Imagen de copete23

Hola, si revisas algun

Hola, si revisas algun manual de c/c++ veras como manipular archivosLaughingje,je,je.

hay una manera simple, te creas una variable, por ejemplo NIVEL

en le nivel 1, NIVEL=1, en el 2....etc.

creas un txt  por ejemplo save.txt

 

en el juego tienes que incluir fat.h y luego creas el siguiente programa para guardar:

char text[256] ;//variable para guardar los caracteres en este caso 256

FILE* archivo ;

archivo = fopen("/save.txt", "w+");//abre el txt en modo escritura

rewind(archivo); //indicador de posicion del fichero para el stream

sprintf(text, "%d ", NIVEL);

fwrite(text, 256, 1, archivo);//escribe en el txt el valor de la variable NIVEL
        fclose(archivo); //cierra el fichero

 

 Para cargar:

FILE *archivo;
 fichero = fopen("/dat.xx", "r");//abre el ficheo en modo lectura
  fscanf(archivo, "%d", &NIVEL); //escanea el fichero
  fclose(archivo); 

 

y eso es todo, espero que te sea util

un saludo

 

 

Imagen de The Dark Master

muchisimas

muchisimas gracias,necesitaba esto y ya podre terminar mi juego de verdad muchas gracias.

pero sucedio otra cosa y es que quiero grabar los niveles,pero tambien el score y lo hice tal y como me dijistes pero al compilar sale un error:

incompatible tipe for argument 2 of `fwrite´

¿como lo soluciono para que el fwrite del score no haga que fallen los dos?

salu2


Imagen de copete23

No hace falta que abras el

No hace falta que abras el archivo dos veces, puedes hacerlo así:

sprintf(text, "%d %d ", NIVEL,SCORE);//puedes añadir todas las variables que quieras en sprintf

fwrite(text, 256, 1, archivo);

 

para cargar igual :)

 

salu2

 

 

Imagen de The Dark Master

Bien,ahora consegui que

Bien,ahora consegui que guarde,pero puse esto para cargar:

archivo = fopen("/save.txt", "r");
rewind(archivo); 
  fscanf(archivo, "%d %d", &level,score);
  fclose(archivo);

Resultado:no ha cargado nada.

¿como lo soluciono?

salu2


Imagen de copete23

 tienes que

 tienes que poner

fscanf(archivo, "%d %d", &level,&score);//te falta & en score

 

re tendria que funcionar, pon level y score como variables globales, es decir, despues de los includes.

el programa de carga puedes ponerlo al principio de main, para que cargue nada mas iniciar el juego

int main (void....o lo que tengas){

PA_init;

.....

...

 archivo = fopen("/save.txt", "r");
rewind(archivo); 
  fscanf(archivo, "%d %d", &level,score);
  fclose(archivo);

 

para probar si te ha fucionado puedes poner un PA_outputText a continuacion, que te muestre los valores de cada una (si no lo tienes ya de otra manera claro)

 

intenta así a ver que tal

un saludo

 

Imagen de The Dark Master

¿¿y si es un bool que

¿¿y si es un bool que tengo que poner??

salu2

Imagen de copete23

Lo mismo, pero si quieres

Lo mismo, pero si quieres que sea mas sencillo tambien puedes poner los programas de guardado y carga en funciones separadas para llamarlas desde donde quieras

ejemplo:

creas una fucion void para cargar (ojo! fuera de main)

void cargar (void); //esto es el prototipo de la funcion tienes que crearla antes de la funcion

 

void cargar (void){ //funcion para cargar

Programa para cargar...

}

 

luego puedes llamarla desde donde quieras

bool main() //o como lo tengas {

cargar();

while(1){

..........

}

 

lo mismo para guardar :)

con esto te ahorras tener que escribir siempre el codigo (sobre todo para guardar) y es mas comodo.

 

 

 

Imagen de eglomer

Todo eso es más fácil si

Todo eso es más fácil si se crea una estructura

 

// antes del main

typedef struct{

    variable 1 sin inicializar (ejempo: int x;)

   variable 2 sin  inicializar

   ...

}NOMBRE; // NOMBRE es el nombre de la estructura

NOMBRE nombre; // Creamos una variable llamada nombre que contenga todos los datos de la estrucura NOMBRE

 

// cambio de los datos de las variables

nombre.variable1 = valor1; //ejemplo: nombre.x = 10;

nombre.variable2 = valor2;

 

// cargar

archivo=fopen("juego.sav","rb");
fread (&nombre,sizeof(nombre),1,archivo);
fclose(f);

 

// guardar

archivo=fopen("juego.sav","wb");
fwrite (&nombre,sizeof(nombre),1,archivo);
fclose(f);

 

 

de este modo te evitas el tener en cuenta el tipo de las variables


Proyectos en curso

El Taller de Eglomer

Imagen de The Dark Master

si pero son varias variables

si pero son varias variables las que tengo que guardar.

salu2

Imagen de eglomer

Mételas todas dentro de la

Mételas todas dentro de la estructura :)

 

Si quieres, te mando un MP con mi mail y te ayudo ;)

Imagen de The Dark Master

le di dos veces a enviar comentario

si es verdad ya se reparo muchas gracias.

salu2

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.