Páginas

sábado, 17 de marzo de 2012

Configurar Allegro5 en CodeBlocks para Linux

En un post anterior vimos cómo instalar las librerías de programación gráfica Allegro 5 en el sistema operativo Ubuntu. En ésta entrada veremos cómo configurar nuestro IDE (Entorno de Desarrollo Integrado) favorito Code::Blocks para que podamos compilar nuestros programas haciendo uso de las librerías de programación gráfica Allegro en su versión 5, hasta hoy, la última disponible.




Una vez tengamos CodeBlocks abierto nos vamos a la pestaña "Settings" >> "Compiler and Debugger..." y en la ventana que se nos abrirá haremos click en la pestaña "Linker Settings".

Dentro se nos mostrarán dos bloques: "Link libraries" y "Other linker options". Debemos introducir la siguiente información:
  • 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`
Todo debe quedar como en la siguiente imagen:


Para comprobar que todo ha ido bien, podemos copiar y pegar este código de ejemplo y probar si compila y ejecuta:

#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;
}

Una vez hecho esto no tenemos más que empezar a programar nuestros videojuegos.

4 comentarios:

  1. Una cosa curiosa es que a mi, el fondo turquesa me aparece solo en la esquina superior derecha. Entiendo que debería ocupar todo el fondo. No és así?

    ResponderEliminar
  2. El programa me compila pero al ejecutar me aparece error al cargar libatk-bridge.so , estoy utilizando red hat, y seguí las instrucciones aquí mencionadas

    ResponderEliminar
    Respuestas
    1. Perdón ya me funciono... el detalle era que había tratado de configurar anteriormente gtk... y una biblioteca de gtk quedo en mis opciones de compilador.. muchas gracias...

      Eliminar
  3. Dato: en la pestaña "link libraries" puede ser una ruta diferente la de las librerias para los usuarios debian (o, dependiendo de como haya sido la instalación; mediante repositorios tal ves?), por ejemplo:

    usr/lib/i386-linux-gnu/nombre_de_la_libreria.so

    Y en "other linker options" otra opcion es poner solamente:

    -lallegro

    Si, ya se que deberia ser lo mismo, pero quien lo diría, no?

    ResponderEliminar