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;
}
A mi no me sirvió hasta que instalé:
ResponderEliminarsudo apt-get install libX11-dev
sudo apt-get install libxcursor-dev
Buena info, saludos
Hola, gracias por el dato... Sólo por curiosidad, utilizas ubuntu, o es otra distro? Saludos!
ResponderEliminarOlá!
ResponderEliminarSou 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!
Hola buenas!!
ResponderEliminara 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!
A mi me funciona de lo mas bien en debian
ResponderEliminarcompile via terminal:
ResponderEliminarg++ main.c -o main $(pkg-config --cflags --libs allegro-5.0 allegro_primitives-5.0)
exectuce:
./main
bingo:
voila! a window spawning colored circles