Program Arcade Games
With Python And PygameVoor we gaan starten...
Als je reeds weet waarom je wil starten met het maken van spelletjes en je vraagt je af hoe je kan starten, dan kan je dit hoofdstuk overslaan en meteen naar het hoofdstuk gaan over hoe je de software kan installeren.
Ben je hier om je eigen games te maken? Super! Hier kan je videos vinden van spelletjes die gemaakt werden door studenten die deze cursus hebben gevolgd :
Wanneer je start met het leren programmeren, dan zal je merken dat dit vlug lijkt op werk. We weten allemaal dat we eerder het werk overslaan en meteen gaan goud verzamelen in World of Warcraft of Eve Online of een ander spel, niet? Waarom zouden we dan starten met programmeren? Wat kan iemand hieruit halen?
0.1 0.1 Het leren maken van spelletjes en ervoor betaald worden.
Het leren maken van spelletjes en ervoor betaald worden? Ok, Ik ga je niet betalen maar als je leert programmeren zijn er heel wat mensen die ervoor willen betalen. Hier volgt hoe je ervan kan genieten :
- Leer hoe je spelletjes kan maken.
- Maak plezier met het maken van je eigen spelletjes.
- Kies je favoriete werkaanbieding.
- Geniet.
Kijk, nummer ??? in dit plan!
Denk er eens over na. Je kan spelletjes spelen, maar iedereen kan dat. Goed zijn in een videospelletje is echt een verwezenlijking in je leven als je er over nadenkt. Maar je kan ook zelf spelletjes maken. Mensen houden ervan.
Wanneer je aan het studeren bent hoe een computerspel moet werken, zeg dan tegen je ouders en medewerkers dat je informatica studeert. Dat klinkt beter.
0.1.1 Waarom informatica studeren?
Terug naar het geld. Volgens de National Association of Colleges and Employers (NACE) (Is een vereniging van hogescholen en bedienden in Amerika), is computer engineering de tweede best betaalde diploma, informatica staat op nummer 4 en informatie-wetenschappen op nummer 8. De meeste andere diplomas zijn eveneens te vinden in de technologie of in de software branche.
Best betaalde bachelor's diploma's | |
Diploma | Gemiddeld Salaris |
Petroleum Engineering | $93,500 |
Computer Engineering | $71,700 |
Chemical Engineering | $67,600 |
Computer Science | $64,800 |
Aerospace Engineering | $64,400 |
Mechanical Engineering | $64,000 |
Electrical Engineering | $63,400 |
Management Informational Systems | $63,100 |
Engineering Technology | $62,200 |
Finance | $57,400 |
(De gegevens komen van de NACE April 2013 Salaris Enquete.)
Computer engineers verbinden de computer programmas met de hardware. In de huidige markt hebben de meeste van deze jobs kennis nodig van computer programmatie.
Wat is informatiewetenschap? Dit is een diploma voor mensen die graag werken met computers en technologie maar die niet houden van programmeren. Dit book wil je duidelijk maken dat dit niet voor jou is. Programmeren is leuk en wie wil er nu op de 10de plaats staan in de lijst van bestbetaalde diplomas?
Tijdens het leren programmeren van spelletjes kan je studeren voor één van de best betaalde batchelor diplomas dat er bestaan. En laat ons eerlijk zijn, de ingenieurdiplomas nemen 5 jaar in beslag. Informatica is een goede keuze voor een carriere.
Niet alleen krijgen afgestudeerden informatica de goedbetaalde aanbiedingen, ze zijn ook diegene die de meeste kans hebben op een aanbod. Dit komt omdat er weinig studenten deze richting kiezen en de vraag groot is. Volgens NACE krijgen meer dan 56 percent van de studenten een job als ze solliciteren. Om een idee te hebben hoe de verdeling is tussen de kennis van de studenten en de vraag naar informaticajobs zie 0.2 en Figure 0.3.
Wat met een programmeeropleiding op school? Want uiteindelijk is een schoolopleiding een goedkoper alternatief dan drie jaar hogeschool. Veel goedkoper. Maar wanneer je volgende gegevens bekijkt moet je toch voorzichtig zijn met het kiezen van een schoolopleiding :
Gemiddelde salaris per studieniveau | |
---|---|
Vocational/Tech School | $65,408 |
Some College | $75,701 |
High School | $79,370 |
Military | $84,131 |
College Graduate (4-Year) | $85,815 |
Master's Degree | $97,811 |
Doctoral Degree | $113,600 |
Volgens Dice.com's onderzoek verdienen mensen die kiezen voor een technologische richting $20,000 minder wanneer ze uit de humaniora komen ten opzichte van mensen die naar de hogeschool zijn geweest. Merk op dat het salaris vermeld niet het gemiddelde aanvangssalaris is. De getallen geven het gemiddelde salaris van alle werknemers, ongeacht hoe ervaren ze zijn.) Natuurlijk ben ik ervan overtuigd dat Simpson College de beste school is van het midwesten. http://simpson.edu/computer-science
0.1.2 Haal het meest uit deze lessen
Wil je weten of je je tijd aan het verliezen bent? Beantwoord de vragen van de hoofdstukken! Sla ze niet over. Ze zijn nodig om de leerstof te begrijpen.
Doe de oefeningen! Deze zijn zelfs het belangrijkste. Alleen maar de leerstof te lezen is even zinnig dan proberen om basketballer te worden door een boek te lezen.
Oefen! Er zijn misschien anderen die niet hoeven te oefenen en dat is niet eerlijk. Of je bent misschien slimmer dan hen maar omdat zij er meer voor doen zijn ze toch beter. Dat is ook niet eerlijk. Zo is het leven. Oefen!
Neem je dit op als een klas? Super! Wist je dat je tijd kan winnen door de antwoorden te copieren van het internet? Je kan ook iemand betalen om de oefeningen voor jou te maken. Dat is even zinvol.
Serieus, wat ben je met het copieren van iemand anders? Als je niet van plan bent de oefeningen te maken kan je meteen beter stoppen.
Wanneer lezen niet echt je manier van studeren is kan je de meeste informatie vinden met de videos. Je kan de volledige tekst overslaan en alleen de videos bekijken op de YouTube playlist :
http://www.youtube.com/playlist?list=PL1D91F4E6E79E73E1
Maar je kan niet leren zonder te werken. Lees en stel vragen. Maak de oefeningen en stel vragen. Maak de werkbladen en stel vragen. Bekijk de videos en stel vragen.
0.1.3 Stuur Feedback
Dit is de tekst dat ik gebruik in de Simpson College klas:
Computer Science 150
Fundamentals of Computing I
Er is een geprinte versie en een online versie. De online versie is te vinden op :
http://ProgramArcadeGames.com
Het doel van de tekst, websites, werkbladen, oefeningen en videos is om een basis informatica concept aan te leren zodanig dat studenten zo snel mogelijk zelf hun spelletjes kunnen gaan maken.
Stuur me een briefje!
Laat me iets weten wanneer je dit gebruikt voor zelfstudie of voor een andere klas. Hoe meer mensen er gebruik van maken, hoe meer energie ik erin wil steken om het te verbeteren.
Wanneer je fouten of tekortkomingen merkt in het boek mag je me een e-mail sturen. Ik wil deze informatie zo goed mogelijk kunnen houden.
Dr. Paul Vincent Craven
Department Head, Computer Science Department
Simpson College, Indianola, Iowa, USA
paul.craven@simpson.edu
0.2 Installeren en Starten met Python
Om te beginnen heb je twee programmas nodig. Python en Pygame. Python is een programmeertaal waar we gaan meer werken en Pygame is een bibliotheek van instructies dat ons zal helpen bij het schrijven van spelletjes.
0.2.1 Windows Installatie
Wanneer je werkt met een computer waar Python en Pygame reeds geinstalleerd zijn kan je deze stap overslaan. Wanneer je Python en Pygame nog moet installeren op je Windows computer moet je je niet ongerust maken. Het is zeer eenvoudig.
- Start het Python installeerprogramma dat je kan downloaden van :
ProgramArcadeGames.com/python-3.3.3.msi - Start het Pygame installeerprogramma dat je kan downloaden van :
ProgramArcadeGames.com/pygame-1.9.2a0.win32-py3.3.msi
Wanneer deze geinstalleerd zijn start je Python op door de ontwikkelingsomgeving op te starten. IDLE = Integrated Development Environment zie Figuur 0.4
De originele bestanden komen van de Python download pagina :
http://www.python.org/download/
...en de originele Pygame bestanden komen van :
https://bitbucket.org/pygame/pygame/downloads
0.2.2 Mac Installatie
Python en Pygame draaien op een Mac. Ik heb er nooit een opleiding voor gemaakt. Gezien de hoofdpijn dat voormalige studenten kregen om Pygame op een Mac aan het werk te krijgen raad ik aan om Python en Pygame te draaien onder een Windows emulatie.
0.2.3 Unix Installatie
Unix en Unix-like installaties hebben mogelijks een Pygame package, of is er de mogelijkheid om er gemakkelijk eentje te krijgen. Wanneer je eentje wil compileren vanuit de bron kan je dit zoals ik als volgt doen voor Linux Mint:
# Load required packages sudo apt-get install mercurial libsdl1.2-dev libsmpeg-dev sudo apt-get install libasound2-doc libglib2.0-doc python3-dev sudo apt-get install libsdl-ttf2.0-dev libsdl-image1.2-dev sudo apt-get install libsdl-mixer1.2-dev libportmidi-dev sudo apt-get install libavformat-dev libswscale-dev # Use mercurial to clone current code hg clone https://bitbucket.org/pygame/pygame # Build and install cd pygame sudo python setup.py
Het grootste risico bij UNIX platformen is dat de standard versie 2.x is en dan zal niet alle code werken uit het boek omdat wij werken met 3.3.x.
0.2.4 Optie Wing IDE
Python heeft een eigen editor en een eigen omgeving om in te ontwikkelen. Jammergenoeg is dat niet zo'n hele goeie. Mijn studenten lopen meestal tegen volgende twee problemen :
Probleem 1 is dat het moeilijk is om een goed overzicht te hebben bij het werken met meerdere open bestanden. Het is dan gemakkelijk om een bestand vergeten te bewaren voor dat je het programma laat starten. Wanneer dat gebeurt werkt het programma eigenlijk nog met de oude code in plaats van met de nieuwe code. Dit is heel verwarrend.
Probleem 2 is er wanneer er zich een fout voordoet in de graphics van het Pyhton programma. Het programma gaat dan hangen, crasht en is moeilijk te stoppen. De foutboodschap is dan meestal goed verborgen en zeer moeilijk te vinden.
De Wing editor lost het eerste probleem op door het gebruik van tabs per bestand. De editor zal ook vragen of je meteen alle bestanden wenst te bewaren. Een programma dat loopt onder de Wing debugger zal niet gaan hangen zoals beschreven in probleem 2, maar geeft onmiddellijk de controle terug aan de gebruiker door de juiste lijn aan te duiden waar het programma fout ging.
Daarom raad ik jullie aan om nog een derde installatie te doen. Ik stel voor om de Wing editor te gebruiken. Er is een gratis versie beschikbaar die gekend is als Wing IDE 101
wingware.com/downloads/wingide-101/
Hoewel het niet nodig is om te beschikken over alle toeters en bellen is de betaalde versie wel erg leuk. De editor help je door automatisch de variabelen in te vullen van zodra je begint te typen. Als je er het geld voor over hebt is dit het overwegen waard.
In de videos wordt er gebruik gemaakt van de Python editor of de Wing editor, maar er zijn er nog vele anderen :
Met ontwikkelaars discuteren over welke nu de beste editor is, is zoals met een groep van mensen discuteren welke de beste religie is. Je kan best zelf je favoriet kiezen en dergelijke discussies met anderen mijden.
0.3 Het bekijken van de file extenties
Het is aan te raden om in je windows configuraties de file extenties te tonen. Een bestand heeft meestal een naam zoals Book report.docx waarbij .docx aan de computer zegt dat het over een Microsoft Word compatible document gaat. Standaard verbergt Windows de .docx extentie indien er een programma is dat weet over welk document het gaat. Wanneer je gaat programmeren is het vervelend dat je de extenties van de bestanden niet kan zien.
You are not logged in. Log in here and track your progress.
English version by Paul Vincent Craven
Spanish version by Antonio Rodríguez Verdugo
Russian version by Vladimir Slav
Turkish version by Güray Yildirim
Portuguese version by Armando Marques Sobrinho and Tati Carvalho
Dutch version by Frank Waegeman
Hungarian version by Nagy Attila
Finnish version by Jouko Järvenpää
French version by Franco Rossi
Korean version by Kim Zeung-Il
Chinese version by Kai Lin