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
sube tu juego cuando ste
sube tu juego cuando ste terminado a esta pagina web
jeje
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
jeje bueno jeje buen
jeje
bueno
jeje
buen trabajo
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
weno tusige a ver si lo
weno tusige a ver si lo consiges y llega a ir bn del to
suerte!!!
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
Hola, si revisas algun
Hola, si revisas algun manual de c/c++ veras como manipular archivosje,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
Mi blog: http://creandomisvideojuegos.blogspot.com
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
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
Mi blog: http://creandomisvideojuegos.blogspot.com
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
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
Mi blog: http://creandomisvideojuegos.blogspot.com
¿¿y si es un bool que
¿¿y si es un bool que tengo que poner??
salu2
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.
Mi blog: http://creandomisvideojuegos.blogspot.com
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
si pero son varias variables
si pero son varias variables las que tengo que guardar.
salu2
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 ;)
le di dos veces a enviar comentario
si es verdad ya se reparo muchas gracias.
salu2