viernes, 30 de octubre de 2015

Crear juego RPG en C++ y Allegro 4 (26) Cargar Partida

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().

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

Antes de publicar un comentario

Todos los comentarios que se realicen en el blog son moderados.

Debido a esto es muy probable que tu comentario no aparezca de inmediato ya que previamente debe ser revisado para evitar un mal uso (SPAM).

Podrán realizar comentario cualquiera que tenga una cuenta de Google.

Related Posts Plugin for WordPress, Blogger...