Aquí esta una nueva entrega del curso crea tu juego RPG en C++ y Allegro. En esta entrega se realizará la carga de partida.
Para realizar la carga de partida, se leen los datos que previamente se guardaron con la función guarda_partida(). Para la lectura de los datos se debe hacer en el mismo orden que se puso cuando se guardaron.
En el archivo partidas.h, se crea una nueva función llamada carga_partida().
El principio es practicamente igual, excepto a la hora de abrir el archivo, al utilizar el comando pack_fopen el segundo parámetro "r" indica que se abre de lectura.
Con el comando pack_fgets se va obteniendo lineas y se guardan en la variable contenido. A medida que se va leyendo el archivo se van asignando los valores a sus respectivas variables. Al finalizar de leer el fichero, se debe de llamar a la función carga_escenario().
Para realizar la carga de partida, se leen los datos que previamente se guardaron con la función guarda_partida(). Para la lectura de los datos se debe hacer en el mismo orden que se puso cuando se guardaron.
En el archivo partidas.h, se crea una nueva función llamada carga_partida().
void carga_partida(){
char contenido[255];
packfile_password("kodaygames2015");
PACKFILE *fichero;
fichero = pack_fopen("partida.sav","r");
El principio es practicamente igual, excepto a la hora de abrir el archivo, al utilizar el comando pack_fopen el segundo parámetro "r" indica que se abre de lectura.
// datos del jugador
pack_fgets( contenido, 255, fichero);
int jx = atoi( contenido );
pack_fgets( contenido, 255, fichero);
int jy = atoi( contenido );
jugador.posiciona(jx,jy);
pack_fgets( contenido, 255, fichero);
jugador.setvida( atoi( contenido ));
pack_fgets( contenido, 255, fichero);
jugador.setvidamax( atoi( contenido ));
pack_fgets( contenido, 255, fichero);
jugador.setexp( atoi( contenido ));
pack_fgets( contenido, 255, fichero);
jugador.setnivel( atoi( contenido ));
pack_fgets( contenido, 255, fichero);
jugador.setdinero( atoi( contenido ));
pack_fgets( contenido, 255, fichero);
jugador.pon_casco( atoi( contenido ));
pack_fgets( contenido, 255, fichero);
jugador.pon_armadura( atoi( contenido ));
pack_fgets( contenido, 255, fichero);
jugador.pon_arma( atoi( contenido ));
pack_fgets( contenido, 255, fichero);
jugador.pon_anillo( atoi( contenido ));
for (int i=0; i < 12; i++)
{
pack_fgets( contenido, 255, fichero);
jugador.pon_inventario( i, atoi( contenido ) );
}
// datos del escenario
pack_fgets( contenido, 255, fichero);
lugar = atoi( contenido );
pack_fgets( contenido, 255, fichero);
desplazamiento_map_x = atoi( contenido );
pack_fgets( contenido, 255, fichero);
desplazamiento_map_y = atoi( contenido );
// npc y enemigos
pack_fgets( contenido, 255, fichero);
npersonaje = atoi( contenido );
int timg;
int tx;
int ty;
int tdir;
int testado;
int tlugar;
int tvida;
for ( int i = 0; i < npersonaje; i++)
{
pack_fgets( contenido, 255, fichero);
timg = atoi( contenido );
pack_fgets( contenido, 255, fichero);
tx = atoi( contenido );
pack_fgets( contenido, 255, fichero);
ty = atoi( contenido );
pack_fgets( contenido, 255, fichero);
tdir = atoi( contenido );
pack_fgets( contenido, 255, fichero);
testado = atoi( contenido );
pack_fgets( contenido, 255, fichero);
tlugar = atoi( contenido );
personajes[i].crea( timg, tx, ty, tdir, testado, tlugar );
}
pack_fgets( contenido, 255, fichero);
nmalos = atoi( contenido );
for ( int i = 0; i < nmalos; i++)
{
pack_fgets( contenido, 255, fichero);
timg = atoi( contenido );
pack_fgets( contenido, 255, fichero);
tx = atoi( contenido );
pack_fgets( contenido, 255, fichero);
ty = atoi( contenido );
pack_fgets( contenido, 255, fichero);
tdir = atoi( contenido );
pack_fgets( contenido, 255, fichero);
testado = atoi( contenido );
pack_fgets( contenido, 255, fichero);
tlugar = atoi( contenido );
pack_fgets( contenido, 255, fichero);
tvida = atoi( contenido );
malos[i].crea( timg, tx, ty, tdir, testado, tlugar, tvida );
}
pack_fclose(fichero);
};
Con el comando pack_fgets se va obteniendo lineas y se guardan en la variable contenido. A medida que se va leyendo el archivo se van asignando los valores a sus respectivas variables. Al finalizar de leer el fichero, se debe de llamar a la función carga_escenario().
No hay comentarios:
Publicar un comentario