Programación de Video Juegos en C++ con Allegro 5.0 ... Mi primer programa.


Bien a lo largo de una serie indefinida de entradas al blog, intentare explicar los conceptos básicos que te permitirán tener tu primer acercamiento real, a la programación de video juegos en C++ con la librería gráfica Allegro 5.0.

Para este curso estaré trabajando en  Ubuntu 14.04LTS, con el IDE Code::blocks, pero igual puede servirte si estas en windows, si cuentas con linux y aun no instalaste la librería allegro en este mismo blog viene la guía de instalación para que puedas hacerlo. También debo aclarar que estoy obviando que el lector de este curso ya está familiarizado con el lenguaje C++ y con sus temas fundamentales, ( tipos de datos, control de flujo, Programación Orientada a Objetos, Clases, Funciones, Punteros, Referencias, etc.). Si deseas reforzar esos conceptos te invito a que pases por mi canal en Youtube, donde los explico a detalle este es el link: Canal Programando en C++

Bien, comencemos de inmediato, si ya instalaste la librería vamos a analizar y a escribir , nuestra primera aplicación con allegro 5.0.


Primero que nada tenemos que incluir las librerías necesarias para poder desarrollar la aplicación. La primera en orden de aparición se podría decir que es la principal y regularmente con esa es suficiente para comenzar a programar con allegro 5.0. La segunda la incluimos porque nos permite trabajar con ventanas de notificación en forma nativa.
#include <allegro5/allegro.h> // Esta es la principal y siempre se incluye.
#include <allegro5/allegro_native_dialog.h>
Después vamos a crear una variable de tipo ALLEGRO_DISPLAY, la cual nos permitirá controlar y trabajar directamente con los elementos de la pantalla.

ALLEGRO_DISPLAY *pantalla = NULL;
if(!al_init())
{
al_show_native_message_box(NULL, NULL, NULL,
"ERROR AL INICIAR ALLEGRO!", NULL, NULL);
return -1;
}
Después vamos a hacer un llamado a la función al_init(), esta función inicializa Allegro y la prepara para poder trabajar con algunas variables globales elementales, por otro lado, estamos realizando una comprobación a la inicialización de la función al_init() , ya que si la comprobación falla no podremos trabajar con Allegro, lo cual nos indica que existe algún error al iniciar la librería, por lo cual, la función al_show_native_message_box() mandará un mensaje de error por medio de una ventana de notificación y el programa terminará.

pantalla = al_create_display(640, 480);

if(!pantalla)
{
    al_show_native_message_box(NULL, NULL, NULL,
        "ERROR AL CREAR LA PANTALLA!", NULL, NULL);
    return -1;
}
Aquí estamos creando nuestra "pantalla" o mejor conocida como backbuffer, que es como una especie de pantalla virtual en la cual todos los procesos se llevaran a cabo antes de ser mostrados en el monitor, con esto conseguimos eliminar el molesto parpadeo. La función al_create_display(640, 480), crea el backbuffer y define la resolución del mismo, en este caso 640x480 pixels. Lo que sigue es verificar que la "pantalla" fue creada correctamente, de lo contrario, manda otro mensaje de error y nuevamente el programa termina.

al_clear_to_color(al_map_rgb(255,97,255));
al_flip_display();
al_rest(5.0);
al_destroy_display(pantalla);
return 0;
al_clear_to_color(al_map_rgb(255, 97, 255), prepara y limpia nuestro backbuffer y le agrega un color de fondo, que en este caso esta definido por la combinación RGB.

al_flip_display(), esta funcion imprime en nuestro monitor los cambios hechos al backbuffer y es lo que al final veremos en pantalla.

al_rest(), espera con la ventana abierta por 5 segundos.

al_destroy_display(display), libera nuestra memoria y destruye el backbuffer.

Finalmente termina la aplicación, puedes integrarla en un nuevo proyecto en Code::blocks y probar su funcionamiento, puedes jugar con el rango de colores RGB para obtener resultados distintos.
Este  ha sido nuestro primer programa creado en allegro 5.0 y que nos sirve como introducción al curso de programación de video juegos en C++, mas adelante aprenderemos a crear figuras sencillas, a controlar objetos por medio del teclado, etc. Sigue pendiente... Hasta pronto!

***Te pido por favor me regales un +1 o lo compartas, para poder llegar a muchas mas personas.. gracias! :)

Comentarios

Entradas populares de este blog

Crear la funcion gotoxy(), en dev-c++ ... ejemplo sencillo.

Ejercicio de C++, ejemplo: promedio de un Alumno y la sentencia IF

Como dar formato a los decimales en C++