Programmera spel i C++ för nybörjare
Introduktion
redigeraVarför skall man programmera spel i C++? Har du själv funderat över att börja skapa spel i C++ kanske du skall traska iväg till närmaste fiskbutik, köp en nyfångad lax och slå dig själv i huvudet gång på gång tills du ändrar uppfattning. Om du fortfarande tycker att det verkar vara en bra idé, alternativt tycker att spelprogrammering är en roligare väg till förståelse över hur man programmerar C++ än att sitta framför kommandotolkens svarta fönster med vita bokstäver och siffror, är detta boken för dig.
Varför inte C++? Framförallt för att både Java och C# har inbyggda funktioner som gör det så mycket lättare att skapa enklare spel och om du börjar med Flash script kan du skapa spel som alla som kan se Youtube-klipp kan spela.
Varför C++? Om det är så att du aktivt vill vara med om att programmera spel liknande de riktigt tunga spelen på marknaden, så är fortfarande C++ industristandard. Vill du krama ut så hög lön som möjligt under projekttiden? Var då den som är bäst på C++ programmering. En annan aspekt är att det finns en uppsjö olika programspråk för närvarande och de används på specialiserade vis riktade mot olika målgrupper. C++ är det enda programspråk som riktas mot allt. Oavsett om du utvecklar spel och program mot Mac, Unix eller Windows går alltid C++ kod att kompileras (med litet justerande).
Kombinationer
redigeraFör att skapa spel i C++ behövs flera olika samverkande system. Du behöver så klart en dator, vanligen PC eller Mac. Du behöver ett operativsystem, Windows är fortfarande vanligast men Linux är ett bra alternativ. Du behöver ett mediabibliotek och de två största i dagsläget är DirectX och Open GL. DirectX kan bara användas i en Windowsmiljö medan Open GL kan användas av alla datorer oavsett operativsystem så länge grafikkortet stöder Open GL. Till detta behöver du en utvecklingsmiljö där du på ett lätt sätt kan ta in grafik och ljud i ditt spel och en lista på de största gratisvarianterna för C++ finns bland länkarna nedanför: Gratis mediabibliotek. Om du vill använda Allegro eller SFML t.ex. är upp till dig, slutresultatet blir ungefär detsamma när det gäller enklare spel. Slutligen behöver du en kompilator som kan förvandla den skrivna koden till en kod som datorn förstår. Om du använder Windows är Microsoft Visual C++ express vanligast, och du kan ladda ner en gratisversion från Microsofts hemsida. Linux kommer med G++ som installeras automatiskt och som är en riktigt bra kompilator för C++. Inför varje exempel i boken bör det stå vad som behöv för att det skall gå att följa exemplet. T.ex. Windows 7, VC++ 2010 express, SFML 1.6.
Allmänna kapitel
redigeraMål i gymnasieskolan De mål i svenska gymnasiet kopplade till programmeringskurserna
Uppbyggnad av ett program Hur koden bör struktureras
Nätverksprogrammering Olika rutiner kopplade till nätverksspel
Collision detect Teorier bakom hur man ser om man krockar i spelen.
Länkad lista 1 Hur man skapar en dynamisk lista och fyller den med spelare
Länkad lista 2 Hur man raderar poster i listan och även raderar hela listan
Klass som funktionsvariabel I spelprogrammering använder man ofta klasser i funktioner, istället för tvärtom
C++ headerfiler och cpp filer Hur du kopplar filer mellan varandra i C++
Funktionsanrop i klasser och polymorfism Hur du anropar och ärver funtioner på olika sätt i C++
Kapitel om konsollspel
redigeraIn Between Slå en tärning mellan bankens tärningar
Äventyrsspel Enkelt spel med flervalsfrågor
Dra kort Få högre spelkort än datorn
Luffarchack En klassiker som kan utvecklas
Sten, sax, påse Avancerad variant där man även kan satsa pengar
Kapplöpning Satsa på hästar, rätt avancerat
Kapitel om SFML
redigeraInstallation av 1.6 (En föråldrad version)
Installation av 2.3.X och VS 2013 (Den första lektionen du bör läsa för att få SFML att fungera)
Sprites och spelpjäser 1 (Första förflyttningen)
Sprites och spelpjäser 2 (Enkel AI)
Sprites och spelpjäser3 Klasser och objekt
Sprites och spelpjäser 4 Klasser och pekare
Sprites och spelpjäser 5 Skapa arméer med knapptryckningar
Sprites och spelpjäser 6 Medlemsfunktioner
Sprites och spelpjäser 8 Multipelt och virtuellt arv
Sprites och spelpjäser 9 Polymorfism
Studsande boll Enkelt kollisionsberäkning
Bakgrunden och isometriska plattor
Views När spelplanen är större än skärmen
Text (Visa text för spelaren)
Ljud och musik 1 Ljudeffekt och bakgrundsmusik
Rotation Cosinus, sinus och tangens
Animation 1 En enkel animationsklass
Animation 2 En explosion med ljud, test
Animation 3 En explosion med ljud, i spelet
Enkelt stridsvagnspel En stridsvagn kör omkring och skjuter
Exempel på collision detect i spel Utökat enkelt stridsvagnsspel där man kan skjuta på varandra
Exempel 2 på collision detect Kod skapad av elev för att demonstrera hur två cirklar kolliderar
Nätverksprogrammering 1 IP, TCP och UDP; grunderna
Nätverksprogrammering 2 UDP, enkelt chattprogram
Nätverksprogrammering 3 Skicka en struct mellan datorer
Färdigt spel Hur gör du för att distribuera spelet
Olika spel som du själv kan bygga vidare på
Squash Enkelt spel som kan byggas ut
Pingis Ett färdigt spel
Hänga gubbe 1 Enkelt spel som kan byggas ut
Flaggklickare Klicka på rätt flagga när landsnamnet syns