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 stabila versionen. Man kan hitta den via länken Latest version på Allegro-webbplatsen liballeg.org. När jag skriver detta (29 februari 2016) heter filen allegro-5.0.11.tar.gz. Alternativt finns det en lokal kopia här: allegro-5.0.11.tar.gz (från 2016-02-29).
Om man vill ha ännu senare versioner av källkoden kan man ladda ner en ostabil version, eller till och med hämta den ur Allegro-utvecklarnas GIT-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 ett 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), och när det gäller Ubuntu särskilt avsnittet Ubuntu and Allegro 5.sudo apt-get install cmake sudo apt-get install libx11-dev sudo apt-get install libgl1-mesa-dev sudo apt-get install libxcursor-dev sudo apt-get install libglu-dev sudo apt-get install build-essential
Packa upp tar-filen:
Det skapas en katalog som heter allegro-5.0.5. Gå till den katalogen, konfigurera, bygg och installera:tar xvzf allegro-5.0.11.tar.gz
Det finns några exempelprogram i underkatalogerna demos och examples, som finns under katalogen Build, där vi står efter att ha gett de olika kommandona ovan. Vi provkör ett par av dem:cd allegro-5.0.11 mkdir Build cd Build cmake -DCMAKE_INSTALL_PREFIX=/home/padrone/allegro5/installation .. make make install
./demos/speed/speed
./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!
CC = gcc 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) 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:
gcc -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, och för att programmen ska hitta biblioteksfilerna vid körning kan vi behöva 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!
(Det kan fungera annorlunda. När jag provkörde på min vanliga dator blev fönstret svart. När jag provkörde precis samma version av Ubuntu, Allegro och testprogrammet i en virtuell maskin med VirtualBox på samma dator, blev fönstret inte svart, utan när jag stängde och öppnade fönstret visades den röda rutan på grön bakgrund. Tydligen fungerade grafiken annorlunda i den virtuella maskinen.)
Mer information finns i Allegro-dokumentationen, särskilt referensmanualen och Allegro-wikin.