Programación de Videojuegos en C++... Guía: Instalar Allegro 5.0 en Linux.

Programar en C++, se vuelve mas interesante, cuando comenzamos a aplicar nuestro conocimiento del lenguaje a diversas áreas como en este caso a la programación multimedia o de videojuegos, para esto existen las librerías, las cuales nos permiten implementar una serie de funciones y clases, que nos facilitan mucho el trabajo, y nos ayudan a enfocarnos principalmente en el diseño de la aplicación.

En este post vamos a instalar una librería gráfica llamada allegro 5.0, en el entorno Linux, la distro es Pear OS 8, pero debería funcionar bien en cualquier distro basada en Debian.

Primero vamos a actualizar , abrimos la terminal presionando ctrl+ alt+ T, y escribimos lo siguiente:
$ sudo apt-get update

Después instalamos las dependencias necesarias:
$ sudo apt-get install build-essential subversion cmake xorg-dev libgl1-mesa-dev libglu-dev

Luego Instalamos las dependencias complementarias:
$ sudo apt-get install libpng-dev libcurl4-nss-dev libfreetype6-dev libjpeg-dev libvorbis-dev libopenal-dev libphysfs-dev libgtk2.0-dev liboss4-salsa-dev libpulse-dev libflac-dev libdumb1-dev

En seguida, instalamos las dependencias para la documentación:
$ sudo apt-get install exuberant-ctags dvi2ps dvipdfmx latex2html pandoc

Descargamos Allegro 5 desde el repositorio.
$ svn co https://alleg.svn.sourceforge.net/svnroot/alleg/allegro/branches/5.0 allegro-5.0

Lo siguiente que haremos es crear una carpeta llamada "allegro-5.0" donde se descargará el código fuente. Después dentro de "allegro-5.0" crearemos otra llamada "build" que utilizaremos para compilar e instalar el código, seguimos escribiendo en la terminal:

$ cd allegro-5.0
$ mkdir build
$ cd build

Tenemos que usar  cmake para poder compilar los archivos de la libreria que acabamos de descargar , si no tienen instalado cmake, antes de continuar, lo instalan escribiendo lo siguiente: $ sudo apt-get install cmake .

Ahora si,compilamos nuestra libreria: 
$ sudo cmake -DCMAKE_INSTALL_PREFIX=/usr ..

*Si nos lo pidiera, presionamos la tecla "c" un par de veces y luego "g" para volver a la terminal.

Este proceso nos sirve para:
  • Definir dónde queremos  instalar los archivos .h
  • añadir  es siguiente path "/usr/local/lib" a "/etc/ld.so.conf"
  • Y ejecutar "ldconfig" (que configurar el enlazador dinámico en tiempo de ejecución).

Por último, sólo nos queda instalar, escribimos lo siguiente y esperamos a que termine: 
$ sudo make install 

Una vez terminado el proceso, habremos installado allegro 5.0, pero aun falta el paso mas importante, configurar la libreria para que funcione en nuestro IDE Codeblocks, mi version es la 12.11.

Dentro de CodeBlocks a la opcion  "Settings" --- "Compiler ..." y luego en la ventana que aparece buscamos donde diga "Linker Settings".

Dentro de "Linker Settings" encontraremos 2 apartados: "Link libraries" y "Other linker options". Debemos enlazar los archivos de la librería con nuestro codeblocks:

Nos debe de quedar así
  • Link libraries:
    /usr/lib/liballegro_dialog.so
    /usr/lib/liballegro_color.so
    /usr/lib/liballegro_audio.so
    /usr/lib/liballegro_image.so
    /usr/lib/liballegro_physfs.so
    /usr/lib/liballegro.so
    /usr/lib/liballegro_font.so
    /usr/lib/liballegro_acodec.so
    /usr/lib/liballegro_main.so
    /usr/lib/liballegro_memfile.so
    /usr/lib/liballegro_primitives.so
    /usr/lib/liballegro_ttf.so
  • Other linker options
    `pkg-config --libs allegro-5.0`  // aquí copiamos todo                                            incluyendo el tilde.`
 Y listo ya podemos comenzar a programar con allegro 5.0, en próximos post estaremos aprendiendo a utilizar esta librería

Si lo deseas puedes copiar el siguiente codigo c++ para probar allegro 5.0 y verificar que si funciona en codeblocks:

#include <iostream>
#include <allegro5/allegro.h>
#include <allegro5/allegro_primitives.h>

using namespace std;

#define WIDTH   640
#define HEIGHT  480

int main(int argc, char **argv)
{
    srand(time(NULL));

    ALLEGRO_DISPLAY *display = NULL;
    ALLEGRO_EVENT_QUEUE *events = NULL;

    if(!al_init()) {
        cerr << "fallo al iniciar allegro!" << endl;
        return -1;
    }

    al_install_keyboard();

    al_set_new_display_option(ALLEGRO_SINGLE_BUFFER, 1, ALLEGRO_REQUIRE);
    al_set_new_display_flags(ALLEGRO_WINDOWED);
    display = al_create_display(WIDTH, HEIGHT);
    if(!display) {
        cerr << "fallo al crear el display!" << endl;;
        return -1;
    }

    al_init_primitives_addon();

    events = al_create_event_queue();
    al_register_event_source(events, al_get_keyboard_event_source());


    al_clear_to_color(al_map_rgb(0,128,128));
    while(al_is_event_queue_empty(events))
    {
        al_draw_filled_circle(
            rand()%WIDTH, rand()%HEIGHT, rand()%64,
            al_map_rgb(rand()%256, 0, 0));
        al_flip_display();
        al_rest(1.0);
    }

    al_destroy_display(display);
    return 0;
}

Comentarios

  1. A mi no me sirvió hasta que instalé:
    sudo apt-get install libX11-dev
    sudo apt-get install libxcursor-dev
    Buena info, saludos

    ResponderEliminar
  2. Hola, gracias por el dato... Sólo por curiosidad, utilizas ubuntu, o es otra distro? Saludos!

    ResponderEliminar
  3. Olá!
    Sou brasileira e gostei muito de seu blog!
    Porém, no passo abaixo,
    ["Descargamos Allegro 5 desde el repositorio.
    $ svn co https://alleg.svn.sourceforge.net/svnroot/alleg/allegro/branches/5.0 allegro-5.0"],
    o link está quebrado. A versão atual é a http://sourceforge.net/projects/alleg/files/allegro/5.0.11/

    Obrigada!

    ResponderEliminar
  4. Hola buenas!!
    a mi me iba bien hasta que llegue a: sudo cmake -DCMAKE_INSTALL_PREFIX=/usr..
    me sale: CMake Error: The source directory "/home/jorge/allegro" does not appear to contain CMakeLists.txt.
    Alguna idea de porque, y que hay que hacer?? soy nuevo en esto de Ubuntu.. y en la programacion tambien ejem jjj Gracias por el tutorial!

    ResponderEliminar
  5. A mi me funciona de lo mas bien en debian

    ResponderEliminar
  6. compile via terminal:
    g++ main.c -o main $(pkg-config --cflags --libs allegro-5.0 allegro_primitives-5.0)

    exectuce:

    ./main

    bingo:
    voila! a window spawning colored circles

    ResponderEliminar

Publicar un comentario

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++