De här Linux-instruktionerna kan kännas lite mer kortfattade än Windows-instruktionerna, som kan vara mer anpassade för nybörjare.
Binära versioner är enklare att installera, i synnerhet om det finns ett färdigt paket för den Linux-distribution man använder, men här beskriver vi hur man laddar hem källkoden och kompilerar den själv.
Leta fram den senaste versionen. Man kan hitta den via länken Files på Allegro-webbplatsen allegro.cc. När jag skriver detta (10 juni 2011) heter filen allegro-5.0.3.tar.gz. Alternativt finns det en lokal kopia här: allegro-5.0.3.tar.gz (från 2011-06-10).
Om man vill ha den allra senaste versionen av källkoden kan man hämta den ur Allegro-utvecklarnas Subversion-repository, men det tar vi inte upp här.
Ytterligare bibliotek kan vara bra, till exempel för att hantera olika bild- och ljudformat, men det där är absolut minimum för att det ska gå att kompilera. Läs mer i de README-filer som finns med i tar-filen, och på Allegro-wikin (wiki.allegro.cc).sudo apt-get install cmake sudo apt-get install libx11-dev sudo apt-get install libgl1-mesa-dev sudo apt-get install libglu-dev sudo apt-get install libxcursor-dev
Packa upp tar-filen:
Det skapas en katalog som heter allegro-5.0.3. Gå till den katalogen, konfigurera, bygg och installera:tar xvzf allegro-5.0.3.tar.gz
I underkatalogerna demos och examples finns några olika exempelprogram. Vi provkör ett par av dem:cd allegro-5.0.3 mkdir Build cd Build cmake -DCMAKE_INSTALL_PREFIX=/home/padrone/allegro5/installation .. make make install
./demos/speed/speed
cd examples ./ex_glext
Programmen avslutas genom att man trycker ESC.
Skapa en källkodsfil, till exempel med namnet allegrospel.c, och skriv in eller kopiera följande programkod:mkdir /home/padrone/allegrospel cd /home/padrone/allegrospel
// A very simple Allegro program #include <stdlib.h> #include <stdio.h> #define USE_CONSOLE #include <allegro5/allegro.h> #include <allegro5/allegro_primitives.h> int main(int argc, char *argv[]) { ALLEGRO_DISPLAY *display = NULL; // Initializing allegro if (!al_init()) { fprintf(stderr, "Couldn't initialize allegro. Sorry.\n"); return EXIT_FAILURE; } if (!al_init_primitives_addon()) { fprintf(stderr, "Couldn't initialize allegro addons. Sorry.\n"); return EXIT_FAILURE; } // Creating a window display = al_create_display(400, 300); if (display == NULL) { fprintf(stderr, "Couldn't create the window.\n"); return EXIT_FAILURE; } // Painting it green al_clear_to_color(al_map_rgb(0, 255, 0)); al_draw_filled_rectangle(200, 100, 250, 150, al_map_rgb(255, 0, 0)); al_flip_display(); printf("Now you should see a green window with a red square.\n"); printf("Press ENTER to exit.\n"); getchar(); // Exiting the program al_destroy_display(display); return EXIT_SUCCESS; }
Ögna igenom programkoden och gissa vad den gör!
CFLAGS += -Wall -std=c99 -pedantic CPPFLAGS += -I/home/padrone/allegro5/installation/include LDLIBS += -lallegro -lallegro_primitives LDLIBS += -L/home/padrone/allegro5/installation/lib
CFLAGS är "flaggor till C-kompilatorn", och har i det här fallet egentligen inget med Allegro att göra. CPPFLAGS är "flaggor till C-preprocessorn", och här talar vi om var Allegro-bibliotekets include-filer finns. LDLIBS är argument till länkaren som talar om vilka bibliotek som programmet använder. Allegrobiblioteket är uppdelat i flera delbibliotek, och den första av de två LDLIBS-raderna (med -l) anger att de två biblioteken allegro och allegro_primitives ska användas. Den sista raden (med -L) raden anger en extra katalog där länkaren kan leta efter biblioteksfiler.
Sammantaget leder dessa definitioner till att programmet make kommer att använda följande kommando för att bygga spelet:
cc -Wall -std=c99 -pedantic -I/home/padrone/allegro5/installation/include allegrospel.c -lallegro -lallegro_primitives -L/home/padrone/allegro5/installation/lib -o allegrospel
Eftersom vi installerade Allegro på en lite ovanlig plats hamnade biblioteksfilerna inte där de brukar finnas, så för att programmen ska hitta biblioteksfilerna vid körning måste vi tala om var de finns. Det kan vi göra genom att sätta omgivningsvariabeln LD_LIBRARY_PATH. Så här skriver man i bash, som är ett av de vanligaste skalen:
LD_LIBRARY_PATH=/home/padrone/allegro5/installation/lib export LD_LIBRARY_PATH
Kompilera och provkör programmet:
Om allt är rätt ska det dyka upp ett grönt fönster med en röd ruta:make allegrospel ./allegrospel
Detta är det 400 gånger 300 bildpunkter stora fönster som vi skapade med anropet al_create_display(400, 300) i vårt program. Den gröna färgen skapade vi med al_map_rgb(0, 255, 0), för G:et i RGB står ju just för "grönt".
En lite lustig effekt är vad som händer om man minimerar det gröna spelfönstret, och sen öppnar det igen. Då blir det svart:
I grafiska fönstersystem, som Microsoft Windows eller Unix-världens X, brukar själva systemet inte lagra och komma ihåg innehållet i de fönster som visas på skärmen. I stället måste programmet som kör i fönstret rita upp innehållet på nytt varje gång fönstret visas, till exempel om det varit minimerat eller dolt av ett annat fönster. Men det här testprogrammet är upptaget med att stå och vänta på inmatning (med getchar), så det kan inte rita något!
Mer information finns i Allegro-dokumentationen (www.allegro.cc/manual) och i Allegro-wikin (wiki.allegro.cc).