jueves, 1 de octubre de 2015

Crear juego RPG en C++ y Allegro 4 (16) Barra de vida

Aquí esta una nueva entrega del curso crea tu juego RPG en C++ y Allegro. En esta entrega se hará que se muestre por pantalla la barra de vida.




Objetivo

Añadir al jugador un nuevo parámetro, que controle la vida. Y crear una función que se encargue de mostrar por pantalla la vida actual del personaje (jugador), mostrando una barra de vida.


Programación

En el archivo players.h, en la definición de la clase se añaden dos variables privadas para controlar la vida.

    int vida;
    int vidamax;

La variable vida contendrá el valor de la vida actual de personaje. La variable vidamax contendrá el valor maximo de vida que puede tener el personaje.

Al ser estas dos variables privadas, se crean dos funciones para que se pueda obtener los valores de estas variables.

       int getvida(){ return vida; };
       int getvidamax(){ return vidamax; };

En la función player::inicia(), se debe inicializar las dos nuevas variables. En este caso se inicializan con el valor de 200.

    vida = 200;
    vidamax = 200;


En el archivo mijuego.h, se crea la nueva función llamada pinta_barra_vida().

void pinta_barra_vida()
{    
    int n = (jugador.getvida()*150) / jugador.getvidamax() ;

    rectfill( buffer, PANTALLA_ANCHO-162, 10, PANTALLA_ANCHO-8, 25, 0x003300);   
    rectfill( buffer, PANTALLA_ANCHO-160, 12, PANTALLA_ANCHO-160+n, 23, 0x00ff00);       
    rectfill( buffer, PANTALLA_ANCHO-160, 12, PANTALLA_ANCHO-160+n, 15, 0xbbffaa);
    rect( buffer, PANTALLA_ANCHO-162, 10, PANTALLA_ANCHO-8, 25, 0x000000); 
}

Esta función se encarga como su nombre indica de pintar la barra. La variable n tiene el valor de la ecuacion ( vida*150 / vidamax ), de esta forma se obtiene un valor proporcional al valor de vida actual con respecto a 150, que es el tamaño total de la barra, para mostrar por pantalla.
Con los comandos rectfill se pintan tres rectangulos relleno, el primero es el que va al fondo que es de color verde oscuro (0x003300), el segundo es de color verde (0x00ff00), y el tercero de verde claro (0xbbffaa). Y finalmente con el comando rect se pinta un rectángulo sin relleno, que se utiliza para pintar el borde del rectángulo de color negro (0x000000).


En la función pinta_juego(),  se añade al final la llamada a la función pinta_barra_vida();

Si todo esta correctamente, se mostrará en la esquina superior derecha, una barra de vida.


Recuerda

Si tienes algún problema con los ejemplos de la pagina, o alguna duda. Puedes plantear tu pregunta en el foro de programación:  http://creatusjuegosdecero.webege.com/index.php

2 comentarios:

  1. Hola! el grabber no me reconoce los ficheros, por casualidad tienen las imagenes sueltas y de ser asi las puedes subir en un .rar?

    ResponderEliminar
    Respuestas
    1. Hola, no tengo las imagenes sueltas ya. Pero todos los recursos utilizados en el curso RPG se encuentran en el indice. http://devcpp-allegro.blogspot.com.es/p/crea-tu-rpg-en-c-y-allegro.html

      Si tienes problema con el fichero dat, mira el apartado dedicado a el.
      http://devcpp-allegro.blogspot.com.es/2015/09/crear-juego-rpg-en-c-y-allegro-4-9-dat.html

      Y para la próxima vez, es mejor poner tu comentario en el apartado donde tienes problema, ya que por mas que miro no veo aqui ningún uso del grabber, ni de imagenes, y no se a que imagenes te refieres concretamente.

      Eliminar

Related Posts Plugin for WordPress, Blogger...