Om man har en äldre version av Visual Studio än 2015 är det krångligare att installera Allegro-biblioteket. Det finns äldre instruktioner som är skrivna för Visual Studio 2010 på Windows 7.
Med pakethanteraren NuGet finns möjligheten att ange ett "paket" som automatiskt laddas ner och kopplas ihop med ens projekt. NuGet finns i Visual Studio 2015. Det kan hända att den fungerar även i tidigare versioner, men det har jag inte provkört.
Man kan också ladda ner Allegro-bibliotekets källkod och kompilera den, men det är betydligt krångligare, så det följande handlar om att ladda hem en färdigkompilerad, eller "binär", version av biblioteket.
Här kan man läsa mer om hur man skapar ett enkelt C-program i Visual Studio 2015.
// 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!
Vi måste tala om för Visual Studio att vi vill använda Allegro-biblioteket. Man kan ladda ner Allegro själv, från Allegro-projektets webbplats, men det är enklare att låta Visual Studio sköta hela jobbet.
Högerklicka på projektnamnet i Solution Explorer, och välj Manage NuGet Packages i menyn.
Nu startas NuGet Package Manager som ett delfönster inuti det stora Visual Studio-fönstret. Skriv Allegro i sökfältet, och installera genom att klicka på Install-knappen.
Vi får upp ett fönster med inställningar för projektet. I trädmenyn till vänster väljer vi Configuration Properties, Allegro 5 och Library Type. Den ska vi sätta till Dynamic Debug - Dynamic Runtime.
Allegro-biblioteket finns nämligen i flera olika versioner, som passar för att användas under programutvecklingen respektive när programmet är färdigt.
Klicka på OK-knappen för att genomföra ändringarna och stänga egenskapsfönstret.
Om allt är rätt ska det dyka upp ett grönt fönster med en röd ruta:
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".
Dessutom dyker det upp ett konsolfönster, eftersom programmet skriver och läser med hjälp av printf och getchar:
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 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.)
Vi har konfigurerat projektet för att använda debug-versionen av Allegro-biblioteket. Det passar bra när vi utvecklar och provkör våra egna Allegro-program, men om vi ska skriva spel och distribuera dem till andra, bör vi använda en annan konfiguration.
Mer information finns i Allegro-dokumentationen, särskilt referensmanualen och Allegro-wikin.