Bouw je eigen game een informaticaopdracht voor 1/2 havo/vwo
Boris Cobelens, Georgio Mosis, Frank Wartena Philips Research Eindhoven
Colofon Auteurs: �������� Georgio ������� Mosis, ������ Frank �������� Wartena, Healthcare Systems Architecture, Philips Research Eindhoven Boris Cobelens, Advanced System Lab, NXP Semiconductors, Eindhoven Adviezen: Annemieke Vennix, Jan van der Horst, Christiaan Huygens College, Eindhoven Monique Boss, Rinus Knapen, Scholengemeenschap Augustinianum, Eindhoven Wilma van Es-Spiekman, Jet-Net coördinator, Philips Research Eindhoven Eindredactie: Betty Majoor, In Profiel Tekstontwerp, Eindhoven Illustraties: Stan Groenland, Eindhoven Drukwerk: Gedrukt door Jet-Net-partner ‘Océ Business Services High Tech Campus’, Eindhoven
[email protected] Dit is een uitgave van: Philips Human Resources Nederland / Jet-Net Postbus 90050 5600 PB Eindhoven Uitgave: versie 1.3, maart 2010 ISBN 978-90-74445-76-4 © Koninklijke Philips N.V. 2010. All rights reserved
Bouw je eigen game
informatica 1/2 havo/vwo
Inhoud 1. Introductie...................................................................................... 3 2. Opstarten met Linux........................................................................ 4 Hoe communiceer je met je computer?.............................................. 4 3. Opstarten van de Jet-Net-game....................................................... 7 De gereedschapkist van een programmeur......................................... 7 Net echt........................................................................................ 8 4.a Je eigen opstartscherm I............................................................. 10 Spreek je talen!............................................................................ 10 Een korte cursus Java taal............................................................. 12 Motten vangen............................................................................. 13 Begrijpen we elkaar?..................................................................... 13 4.b Je eigen opstartscherm II........................................................... 15 Vervolgcursus Java taal................................................................. 15 5. Een level toevoegen aan het spel.................................................. 17 Slim programmeren...................................................................... 17 6.a Het spel mooier maken I............................................................. 22 Handige taalconstructies................................................................ 22 6.b Het spel mooier maken II............................................................ 25 7. Het speelveld aanpassen............................................................... 29 8. Spelen op je eigen mobieltje......................................................... 31 Weg met kabels en snoeren........................................................... 31 Afspraken, maar dan anders.......................................................... 32 9. Het spel opslaan............................................................................ 35 10. Thuis programmeren en spelen................................................... 37 11. Afsluiting..................................................................................... 39 Extra informatie........................................................................... 39 Bijlage A. Extra tekenpapier voor je eigen level................................ 40 Bijlage B. De opbouw van het spel.................................................... 41 Bijlage C. Het spel op Nokia telefoons............................................... 42 Bijlage D. De les op een USB-stick..................................................... 44 Aantekeningen.................................................................................. 46
Bouw je eigen game
informatica 1/2 havo/vwo
Bouw je eigen game
informatica 1/2 havo/vwo
1. Introductie Waarschijnlijk zit je elke dag wel achter een computer om te internetten, msn-en, werkstukken te maken en om te gamen. Je maakt dan gebruik van computerprogramma’s die door programmeurs zijn gemaakt. Vandaag ga je zelf iets op je computer programmeren. We doen dat door het bouwen van een game voor je mobiele telefoon. Door een aantal opdrachten uit te voeren kun je zelf een level programmeren en de game naar je eigen smaak ‘aankleden’. Al doende leer je het nodige over programmeren en kun je straks meepraten over zaken als besturingssystemen, programmeertalen, machinetaal en nog veel meer. Hierbij willen wij graag Sun Microsystems bedanken voor de enthousiaste medewerking en het ter beschikking stellen van een licentie voor het gebruik van de Java software. We wensen je heel veel plezier met het bouwen van je eigen game!
Bouw je eigen game
informatica 1/2 havo/vwo
2. Opstarten met Linux De programma’s die we gebruiken voor het programmeren van de game draaien op Linux, een alternatief voor Windows. Linux werkt bijna hetzelfde als Windows, dus je zult niet al te veel moeite hebben om het te gebruiken. Als je vragen hebt of niet zeker weet hoe iets moet dan willen wij je natuurlijk graag helpen.
Hoe communiceer je met je computer? Een computer heeft een besturingssysteem nodig om te kunnen werken. Zodra je een computer opstart (in het Engels boot), wordt dit als eerste in het geheugen geladen. Het besturingssysteem regelt allerlei zaken die nodig zijn om met je computer te kunnen communiceren. Hij moet eerst weten wat hij moet doen met het toetsenbord, de muis, het beeldscherm en de harde schijf. Het zorgt er ook voor dat andere programma’s zoals Word, Excel of games kunnen worden opgestart. Een veelgebruikt besturingssysteem is Windows, maar er zijn ook allerlei andere systemen. Voorbeelden hiervan zijn Unix, Mac OS, Linux en van vroeger MS-DOS. Het leuke van Linux is dat je het gratis kunt downloaden van internet. De Engelse term voor besturingssysteem is operating system, afgekort OS.
Linux is alleen een besturingssysteem, dus zonder programma’s zoals Word, Excel, Mediaplayer, enzovoort. Omdat een besturingssysteem zonder programma’s eigenlijk weinig nut heeft, worden er vaak extra programma’s bijgeleverd. Een Linux besturingssysteem met extra programma’s heet een Linux distributie en hier zijn er heel veel van, op dit moment meer dan 300! De Linux distributie die wij gebruiken heet Slax en is een Live cd-versie. Dit betekent dat je Slax direct van de cd kunt starten zonder het eerst te installeren op je computer. Niet alle schoolcomputers hebben een cd-speler, daarom is de les ook beschikbaar op USB-sticks. De begeleiders van de les delen deze uit als er geen cd-spelers in de computers zitten. Deze USB-sticks zijn alleen voor gebruik in de les en mag je helaas niet houden. Net als bij de cd-versie wordt de inhoud van de stick niet op je computer geïnstalleerd. De USB-sticks moet dus de hele les in de computer blijven zitten. Mocht je de les thuis vanaf je eigen USB stick willen doen, dan vind je in bijlage D hoe je je USB-stick daarvoor geschikt kan maken. Opstarten vanaf de cd Als hij wordt opgestart, gaat een computer dus op zoek naar een besturingssysteem. Meestal zoekt hij eerst naar een cd in de cd-speler. Als hij daar niets vindt, kijkt hij op de harde schijf. We moeten er dus voor zorgen dat onze cd in de cd-speler zit op het moment dat de computer op zoek gaat naar een besturingssysteem.
Bouw je eigen game
informatica 1/2 havo/vwo
Start Slax op met de volgende stappen: 1. Start de computer normaal op (met Windows dus). 2. Leg de cd in de cd-speler en start de computer opnieuw op. Als Slax nu niet start, gebruikt jouw computer blijkbaar een andere opstartstrategie. We moeten hem dan expliciet vertellen dat hij moet opstarten van de cd. Dit gaat als volgt: 1. Druk op de
-toets. Welke dat is, kan per merk computer verschillen, dus vraag dat na bij je begeleider. Voor Dell computers is het F12. 2. Kies voor de optie ‘starten van cd’. Opstarten van USB-stick 1. 2. 3. 4.
Zet de computer uit. Steek de USB-stick in een vrij USB-slot. Zet de computer aan. Druk op de -toets. Welke toets dat is, kan per merk computer verschillen, dus vraag dat na bij je begeleider. Voor Dell computers is het F12. 5. Kies voor de optie ‘starten van USB Flash drive’. De computer start nu op van de cd of USB-stick en je krijgt het volgende opstartscherm te zien:
Afbeelding 1: Het opstartscherm Na een paar seconden gaat de computer door met opstarten en komt er allerlei informatie op de scherm over het verloop van het opstarten. Dit is nu verder niet belangrijk.
Bouw je eigen game
informatica 1/2 havo/vwo
Wanneer Slax klaar is met opstarten krijg je een bureaublad te zien dat lijkt op het bureaublad van Windows.
Afbeelding 2: Het bureaublad van Slax
Bouw je eigen game
informatica 1/2 havo/vwo
3. Opstarten van de Jet-Net-game Op de cd/USB-stick staat al een beginversie van de Jet-Net-game. In de komende hoofdstukken gaan we die versie steeds verder uitbreiden. We gaan nu eerst het programma opstarten waarmee we het spel kunnen programmeren. Dit programma heet JavaTM 2 Platform, Micro Edition Wireless Toolkit, afgekort J2ME WTK en is gemaakt door het bedrijf Sun. We gaan het spel namelijk in de Java programmeertaal maken voor je mobiele telefoon. De gereedschapkist van een programmeur Om zelf een programma te maken (te programmeren) heb je allerlei hulpprogramma’s nodig. Je kunt deze hulpprogramma’s los downloaden van het internet en afzonderlijk starten, maar dat is niet echt handig. Daarom zijn hulpprogramma’s (tools in het Engels) die altijd samen gebruikt worden, verzameld in een toolkit. Je hebt dan al het ‘gereedschap’ dat je nodig hebt handig bij elkaar. Dit maakt het programmeren van je eigen programma veel sneller. Er zijn allerlei soorten toolkits beschikbaar. Welke toolkit het handigst is, hangt af van wat je gaat maken. Vergelijk het maar met het timmeren van een kast (hamer, zaag, schroevendraaier), het maken van een elektronische schakeling (kniptang, striptang, soldeerbout) of het naaien van kleding (schaar, spelden, naaimachine).
J2ME WTK, de toolkit die wij gebruiken, is specifiek bedoeld voor het maken van programma’s in de Java programmeertaal voor een mobiele telefoon en dat is precies wat we hier willen doen. Opdracht Op het bureaublad vind je een icoon met de naam J2ME WTK. Door hierop te dubbelklikken start je het programma waarmee we het spel gaan maken.
Afbeelding 3: De J2ME Wireless Toolkit
Bouw je eigen game
informatica 1/2 havo/vwo
Open nu de Jet-Net game: 1. klik op de knop Open Project… 2. kies Jet-Net in de lijst. (dubbelklikken op Jet-Net of één keer klikken op Jet-Net en vervolgens op Open Project) De beginversie van het spel is nu geladen in de J2ME WTK. Om het spel te proberen klik je op de knop Run. Je ziet nu een scherm dat lijkt op een mobiele telefoon. Dit is de simulator.
Net echt Simulatoren zijn handig om snel nieuwe dingen uit te proberen. Het komt erop neer dat je iets alvast zo goed mogelijk nabootst zonder het echt te maken. Als je verschillende dingen wilt uitproberen, is het een stuk goedkoper en sneller om dat eerst met een simulator te doen. Een simulator is bijvoorbeeld heel handig voor binnenhuisarchitecten. Door op de computer een interieur te simuleren waar je als het ware doorheen kunt lopen, kunnen klanten alvast zien of zij de kleuren, verlichting en meubels wel mooi vinden. Een stuk goedkoper dan de kamer steeds opnieuw te behangen en schilderen. Een heel bekende simulator is de vluchtsimulator. Deze zijn weliswaar heel duur om te bouwen, maar piloten kunnen hiermee allerlei (gevaarlijke) situaties oefenen zonder dat het vliegtuig zelf gevaar loopt. Bij dit soort simulatoren draait het vooral om veiligheid.
In onze simulator kun je zien hoe het spel er op een mobiele telefoon uit komt te zien. Als we nu iets willen uitproberen, hoeven we dus niet steeds het spel naar een mobiele telefoon te kopiëren.
Bouw je eigen game
informatica 1/2 havo/vwo
Afbeelding 4: De simulator Opdracht Speel maar eens met de simulator en kijk hoe het spel werkt. 1. Om het spel te openen klik je op de knop Select of op de knop onder de tekst Launch. Nadat het opstartscherm is verdwenen kom je in het menu van het spel. 2. Selecteer de optie Nieuw Spel en klik vervolgens op de knop Select. 3. Je kunt het spel bedienen met de pijltjestoetsen op je toetsenbord. De bal begint te bewegen zodra je het balkje onderin het beeldscherm naar links of naar rechts beweegt. 4. Als je naar een nieuwe level wilt tijdens het spelen, druk je op 1 op de telefoon. 5 Je kan de bal sneller of langzamer laten bewegen. Druk op 3 op de telefoon om de bal sneller te laten gaan of op 9 om de bal langzamer te laten gaan. Als je het spel begint, gaat de bal op z’n langzaamst. Als je genoeg van het spel hebt gezien kun je de simulator afsluiten door op het kruisje rechtsboven te klikken. Zoals je ziet is het spel nog niet zo mooi aangekleed. In de volgende stappen kun je het spel net zo mooi gaan maken als je wilt: je eigen kleuren, speelveld, achtergrondplaatjes, enzovoort. Natuurlijk helpen we je daarbij.
Bouw je eigen game
informatica 1/2 havo/vwo
4.a Je eigen opstartscherm I Om het spel aan te passen gaan we de broncode van het spel veranderen. De code van een spel is gewoon tekst die je kan lezen en schrijven. Je kunt de code daarom ook aanpassen met een normaal tekstverwerkingsprogramma, zoals Word. Het programma dat we hier gebruiken heet KWrite.
Spreek je talen! De taal die we dagelijks gebruiken noem je natuurlijke taal. Die is niet alleen geschikt om elkaar dingen te vertellen, maar ook om grappen te maken of poëzie. Een computer kan al die mogelijkheden niet aan en weet al helemaal niet wat hij moet doen als een woord meerdere betekenissen heeft: ezel: - dier - iets dat een schilder gebruikt om zijn doek op te zetten - dom iemand Er zijn voor computers speciale talen ontwikkeld: programmeertalen. Deze zijn heel expliciet en ondubbelzinnig. In programmeertalen worden alleen begrippen en opdrachten gebruikt waar een computer iets mee kan: begrippen en tekens als ‘letter’, ‘regel’, ‘schrijf’, ‘+’, ‘(’, ‘)’, ‘=’, enzovoort. De meeste programmeertalen zijn in het Engels.
Ons spel is gemaakt in de programmeertaal Java. Deze taal wordt veel gebruikt om software te maken voor internet en mobiele telefoons. Je herkent een bestand dat in de taal Java is geschreven aan de extensie .java.
Opdracht Op het bureaublad vind je een icoon genaamd KWrite. Dubbelklik hierop om het programma te starten.
Afbeelding 5: De tekstverwerker KWrite
10
Bouw je eigen game
informatica 1/2 havo/vwo
Het eerste dat je mag veranderen aan het spel is de naam van het spel en de naam van de makers in het opstartscherm van het spel.
Afbeelding 6: Het opstartscherm van het spel Opdracht Om dit te wijzigen klik je in KWrite op het menu File en daarna op Open. Vervolgens kies je in het scherm het bestand genaamd Screen.java en klik je op Open. Als dit bestand geopend is ga je naar regel 81 - 83. Hier vind je de volgende tekst: //verander hier je naam en de naam van het spel private String NAAM = “De Makers”; private String SPEL = “Jet-Net”;
11
Bouw je eigen game
informatica 1/2 havo/vwo
Een korte cursus Java taal De eerste regel die je hier ziet begint met “//”. Dat betekent in de taal Java (en veel andere programmeertalen) dat deze regel commentaar is en dus niet van belang voor de computer. In commentaarregels kun je in gewone taal uitleggen wat daar gebeurt. Dat is erg handig als je programmacode bekijkt. In de 2e en 3e regel worden twee variabelen gemaakt. Variabelen zijn een soort opslagdoosjes waar je iets in kunt stoppen en later weer uit kunt halen. Elk doosje krijgt een eigen naam (hier NAAM en SPEL). De computer kent verschillende soorten variabelen. In dit geval zijn ze van het type String, dat betekent dat we een stuk tekst kunnen opslaan in deze variabelen. Computers zijn niet erg slim. Je moet dan ook heel precies zijn met wat je tegen de computer zegt. Als het maar een beetje anders is dan snapt hij het niet, bijvoorbeeld NAAM is iets anders dan naam. Er zijn dus heel strenge taalregels. Dit heet de syntax van de taal. We geven hier een paar syntaxregels, die voor jullie belangrijk zijn: Commentaar op één regel geef je aan met // //dit is commentaar Commentaar op meerdere regels geef je aan met /* en */
/* dit is commentaar op meerdere regels */ Tekst moet tussen aanhalingstekens staan. Elke opdracht (statement in het Engels) wordt afgesloten met een puntkomma.
String tekst = “Dit is een stuk tekst”;
Opdracht Je mag nu bij de naam van de makers je eigen naam invullen en zelf een naam voor het spel bedenken. Dit doe je door bij de variabelen NAAM en SPEL het stukje tussen de aanhalingstekens te veranderen in de tekst die jij graag wilt hebben. Let goed op de syntaxregels. Dus: beide aanhalingstekens laten staan en elke regel eindigen met een puntkomma. Hier is een voorbeeldje: //verander hier je naam en de naam van het spel private String NAAM = “Joost & Klaas”; private String SPEL = “BlockMaster Unlimited”;
12
Bouw je eigen game
informatica 1/2 havo/vwo
Begrijpen we elkaar? We hebben ons heel netjes aan de taalregels van de Java taal gehouden, maar de computer, die al het echte werk moet doen, begrijpt er nog helemaal niets van. De computer kent namelijk alleen maar machinetaal. Je moet een programmeertaal dus eerst nog vertalen in de gebruikte machinetaal. Dat gebeurt met een compiler en het vertalen noemen we compileren. Je kunt een programma ook rechtstreeks in machinetaal schrijven. Dan moet je de computer bitje voor bitje vertellen wat hij moet doen. Dat gaat dus niet lukken in de tijd die we nu beschikbaar hebben. Het wordt trouwens ook nauwelijks meer gedaan door echte programmeurs.
Om de aanpassingen uit te laten voeren door de computer moeten we onze code dus eerst nog compileren. In onze toolkit gebeurt dat met het commando Build. Als je de aanpassing hebt gedaan, kun je het programma compileren en uitvoeren met de volgende stappen: 1. Sla het bestand op met File g Save (sluit KWrite niet af) 2. Ga weer terug naar de J2ME WTK die nog op je scherm staat. 3. Klik nu op Build en vervolgens op Run om de nieuwe versie van het spel uit te proberen.
Motten vangen Omdat je zo precies moet zijn, worden er bij programmeren regelmatig fouten gemaakt. Dan moet je dus uitzoeken waar iets fout is gegaan. Programmeurs noemen dat debuggen. Het woord debuggen is ontstaan in 1940. Computers waren toen nog gigantische apparaten die bestonden uit mechanische schakelingen. Er was toen een mot in een van de schakelingen gevlogen waardoor de computer het niet meer deed. Die moest dus worden gevonden. Sindsdien heet het verhelpen van fouten in computerprogramma’s debuggen (bug is Engels voor insect).
Naarmate programma’s ingewikkelder worden, wordt de kans steeds groter dat het niet in één keer werkt. Als alles goed is gegaan krijg je een nieuwe simulator te zien met in het opstartscherm de tekst die je zelf hebt ingetikt.
13
Bouw je eigen game
informatica 1/2 havo/vwo
Afbeelding 7: Het nieuwe opstartscherm van het spel
Tips om te debuggen De volgende tips kunnen helpen om foutjes te vinden: • Kijk of elke programmeeropdracht wordt afgesloten met een ; • Kijk of de tekst die je in de Strings zet tussen dubbele aanhalingstekens staat • Meestal geeft de compiler al een foutmelding als iets niet volgens de regels is opgeschreven. Als de bovenstaande tips niet helpen, kun je een begeleider vragen om uit te leggen wat de foutmelding betekent.
14
Bouw je eigen game
informatica 1/2 havo/vwo
4.b Je eigen opstartscherm II Als je het leuk vindt, kun je ook de kleur van de tekst en van de achtergrond veranderen. Je mag deze stap ook overslaan en met het volgende hoofdstuk beginnen. Opdracht Ga weer naar KWrite en open het bestand Screen.java (als die niet meer open was). Vervolgcursus Java taal Op regel 166 tot 178 wordt het opstartscherm getekend op de mobiele telefoon. Hier zijn verschillende functies voor. Een functie is een opdracht die je de mobiele telefoon kunt laten uitvoeren. De functies die hier gebruikt worden zijn: • • • •
setColor fillRect setFont drawString
(hiermee (hiermee (hiermee (hiermee
stel je de kleur in waarmee je gaat tekenen) vul je een rechthoek met de gekozen kleur) stel je het lettertype in) teken je een zin op het scherm)
In de programmacode staat voor al deze functies “g.”. Dat staat voor Graphics. Graphics is een verzameling functies om te tekenen op het scherm. Je vertelt de mobiele telefoon dus om uit de verzameling Graphics de functies setColor, fillRect, setFont en drawString te gebruiken. Achter elke functie staan tussen haakjes de opties die je meegeeft. Hiermee geef je aan wat er precies moet gebeuren. Bijvoorbeeld welke kleur je wilt instellen of welke zin je op het scherm wilt tekenen.
Met de commando’s drawString(SPEL, …) en drawString(NAAM, …) vertel je de computer dus om de zinnen op het scherm te tekenen die je eerder in de variabelen SPEL en NAAM hebt gestopt. Opdracht Je kunt nu de kleur van je naam en van de naam van het spel aanpassen. Ga hiervoor naar de functie setColor op regel 172 en 177. Op regel 172 staat: g.setColor(ThreeDColor.red.getRGB()); En op regel 177: g.setColor(ThreeDColor.orange.getRGB()); Hiermee wordt de naam van het spel getekend met de kleur rood en jouw naam met de kleur oranje.
!
Let op Let erop dat je de kleur precies overtikt, dus met dezelfde hoofdletters en kleine letters.
15
Bouw je eigen game
informatica 1/2 havo/vwo
Vervang nu zelf deze twee kleuren door op beide regels het woord tussen ThreeDColor. en .getRGB aan te passen. Je kunt kiezen uit de volgende kleuren: aqua azure black blue chocolate fuchsia gray green
ivory lime maroon moccasin navy olive orange purple
red salmon silver skyblue teal wheat white yellow
Opdracht We kunnen nu ook de kleur van de achtergrond aanpassen. In regel 166 wordt de functie setColor gebruikt om te vertellen welke kleur je in de achtergrond wilt zetten. Met de functie fillRect wordt vervolgens in regel 167 het hele scherm met deze kleur gevuld. Omdat de waarde voor de achtergrondkleur op verschillende plaatsen in het programma wordt gebruikt hebben we daarvoor een variabele gemaakt. We hoeven dan maar op één plaats de waarde voor de achtergrondkleur aan te passen en dan gaat het vanzelf overal in het programma goed. De variabele voor de achtergrondkleur heet BACKGROUND en wordt in regel 67 gevuld. Verander in regel 67 de kleur die in de variabele BACKGROUND wordt gestopt, op dezelfde manier als dat je dat eerder in deze opgave voor de teksten hebt gedaan. public static final int BACKGROUND = ThreeDColor.white.getRGB(); Nu kun je de aangepaste code weer gaan compileren en uitvoeren: 1. Sla het bestand op met File g Save (sluit KWrite niet af). 2. Ga weer terug naar de J2ME WTK die nog op je scherm staat 3. Klik daar op Build en vervolgens op Run om de nieuwe versie van het spel uit te proberen. Als alles goed is gegaan krijg je een nieuwe simulator te zien met de nieuwe kleuren in het opstartscherm. Tips om te debuggen Gebruik de volgende tips als er iets fout is gegaan: • Kijk of elke programmeerregel wordt afgesloten met een ; • Kijk of de naam van de kleur juist gespeld is. • Als de bovenstaande tips niet helpen, kun je een begeleider vragen om uit te leggen wat een eventuele foutmelding van de compiler betekent.
16
Bouw je eigen game
informatica 1/2 havo/vwo
5. Een level toevoegen aan het spel Op dit moment zitten er 5 levels in het spel, maar het is natuurlijk het leukste om zelf een level toe te voegen. De veranderingen die we tot nu toe hebben gedaan zaten allemaal in Screen.java. Het toevoegen van een level gaan we in een ander onderdeel van het programma doen.
Slim programmeren Een programma is vaak opgebouwd uit een aantal onderdelen die allemaal wat anders doen. Zo’n onderdeel wordt een module genoemd. Het werken met modules heeft flink wat voordelen: • Grote programma’s worden opgedeeld in een aantal kleinere onderdelen die veel makkelijker te maken zijn. • Je kunt modules maken die gespecialiseerd zijn in een bepaald type opdrachten (bijvoorbeeld alles wat met de plaatjes op je beeldscherm te maken heeft). • Door een programma op te splitsen in modules krijg je veel meer overzicht van wat er allemaal gebeurt. • Bij het ontwikkelen van heel grote programma’s waaraan meer mensen tegelijk werken, kun je zo het werk makkelijker verdelen. • Soms maken verschillende programma’s gebruik van dezelfde soort opdrachten. Het is dan goedkoper om dat maar één keer te programmeren. Meerdere programma’s kunnen dan van dezelfde modules gebruik maken. We noemen dit re-use (Engels voor hergebruik). Het is dus slim om een programma niet als één grote kolos te bouwen, maar in een aantal kleinere stukjes te hakken. In bijlage B kun je zien uit welke modules ons spel is opgebouwd.
De module Screen.java verzorgt alles wat er op het beeldscherm gebeurt. Het echte rekenwerk voor de game vindt plaats in de module Engine.java. Door de namen van je modules een beetje handig te kiezen, kun je laten zien waarvoor zo’n module dient. Opdracht Ga nu weer naar het programma KWrite om de code van het spel aan te passen. In KWrite open (File g Open) je het bestand Engine.java. Dit bestand bevat het hart - of de motor (engine is Engels voor motor) - van het spel. Zoals je misschien al gezien hebt, bestaat elke level uit een verzameling blokjes van verschillende kleuren. Het speelveld is 11 blokjes breed en 8 blokjes hoog, in totaal dus 88 blokjes.
17
Bouw je eigen game
informatica 1/2 havo/vwo
Afbeelding 8: Level 1 van het spel In regel 110 tot 117 zie je hoe level 1 in de programmacode eruit ziet: { //level 1 P,P,P,P,P,P,P,P,P,P,P, P,P,P,P,P,P,P,P,P,P,P, Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y, Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y, R,R,R,R,R,R,R,R,R,R,R, R,R,R,R,R,R,R,R,R,R,R, B,B,B,B,B,B,B,B,B,B,B, B,B,B,B,B,B,B,B,B,B,B }, Elke letter staat voor een blokje van een bepaalde kleur. Door de letters te veranderen kun je dus het hele speelveld veranderen. Tot nu toe hebben we alleen maar blokjes gebruikt die verdwijnen als de bal er tegen aanbotst, maar er zijn ook andere soorten blokjes.
18
Bouw je eigen game
informatica 1/2 havo/vwo
Je kunt kiezen uit de volgende blokjes: P (purple) : Y (yellow) : R (red) : B (blue) :
een een een een
paars blokje dat verdwijnt als je ertegen botst met de bal geel blokje dat verdwijnt als je ertegen botst met de bal rood blokje dat verdwijnt als je ertegen botst met de bal blauw blokje dat verdwijnt als je ertegen botst met de bal
P, Y, R en B doen dus precies hetzelfde. Je kunt de kleuren gebruiken om het speelveld er mooi uit te laten zien. S (slide) : een groen blokje dat opzij schuift als je ertegen botst met de bal F (fixed) : een lichtblauw blokje dat nooit verdwijnt Z (zombie): een lege plek. Je kunt dit gebruiken om stukken leeg te houden in je level. Een voorbeeld hiervan zie je in level 2. Opdracht Gebruik de tabel hieronder om je eigen level te ontwerpen. Als je de hokjes inkleurt met kleurpotloden kun je alvast zien hoe het er op het beeldscherm uit gaat zien. Let op Het is belangrijk om te onthouden dat een level pas uitgespeeld is als alle P, Y, R en B blokjes weg zijn. Let er dus op dat je deze blokjes niet insluit met F blokken, want dan kan de bal er nooit bijkomen!
! 1
2
3
4
5
6
7
8
9
10
1 2 3 4 5 6 7 8 Als het inkleuren van de tabel niet in één keer naar je zin is, kun je in de bijlagen een paar extra tabellen vinden.
19
11
Bouw je eigen game
informatica 1/2 havo/vwo
Opdracht Als je op papier je level hebt getekend 1. Ga naar KWrite naar regel 154 in het bestand Engine.java. Hier vind je een nieuwe level die je zelf kunt gaan invullen. 2. Verwijder nu eerst in regel 154 de tekens /* en op regel 163 de tekens*/. Als je nog een beetje Java taal kent, weet je dat dit de tekens zijn voor en <eind-commentaar>. Ze zijn dus handig voor commentaar over meerdere regels (de // was alleen voor commentaar op 1 regel). Nu je deze tekens hebt verwijderd zal de computer dit level straks ook gaan gebruiken. Alleen is het level nog niet bruikbaar, want het is gevuld met Xblokjes en die bestaan in dit spel helemaal niet. Om je eigen level te maken moet je de X-en vervangen door de blokjes die je op papier hebt getekend. Tip Je kunt elke X eerst deleten en dan vervangen door de letter die jij wilt, maar dan moet je dus wel 88 keer deleten. Het gaat sneller als je de invoer in overwrite mode zet (je schrijft dan gewoon over de bestaande letters heen. Dit doe je als volgt: 1. Zet Caps Lock aan (dan heb je meteen hoofdletters) 2. Zet de Overwrite Mode (druk op de toets Insert) aan. In de statusbalk van KWrite zal nu INS veranderen in OVR.
!
Let op Let goed op dat alle komma’s blijven staan tussen de blokjes!
!
Let op Vergeet niet om de Caps Lock en de Overwrite Mode weer uit te zetten als je klaar bent met het invullen van je level! (druk weer op de toets Insert, de statusbalk verandert nu weer in INS)
Opdracht Als je alle X-en hebt vervangen door je eigen blokjes, zetten we weer de bekende stappen om het programma te compileren en uit te voeren: 1. Sla het bestand op met File g Save 2. Ga weer terug gaan naar de J2ME WTK. 3. Klik hier op Build en daarna op Run om de nieuwe versie van je spel uit te proberen.
20
Bouw je eigen game
informatica 1/2 havo/vwo
Tips om te debuggen Gebruik de volgende tips als er iets fout is gegaan: • Kijk of de letters voor de blokjes allemaal een hoofdletter zijn. • Kijk of je geen andere letters hebt gebruikt dan de P, Y, R, B, S, F of Z. • Kijk of er tussen alle letters een komma staat. • Als de bovenstaande tips niet helpen, kun je een begeleider vragen om uit te leggen wat een eventuele foutmelding van de compiler betekent. Omdat jouw level als laatste aan de beurt is, moet je eigenlijk eerst alle andere levels uitspelen om bij je eigen level komen. Met de bekende ‘turboknop’ (de 1 op de telefoon) kun je snel de andere levels overslaan. Lukt het om je eigen level uit te spelen?
Sluit de simulator weer af als je klaar bent met het spel te spelen.
21
Bouw je eigen game
informatica 1/2 havo/vwo
6.a Het spel mooier maken I Je hebt nu zelf een nieuwe level toegevoegd aan het spel, maar het ziet er nog steeds niet echt mooi uit. Dat kun je veranderen door de plaatjes aan te passen die in het spel worden gebruikt. We beginnen met de achtergrond achter de blokjes. Op dit moment is die volledig in één kleur. Dat is niet zo mooi en daarom gaan we er een achtergrond-plaatje inzetten. Opdracht Op de cd zijn al achtergrondplaatjes aanwezig. Je vindt die als volgt: 1. Zoek op het bureaublad de map op die Jet-Net heet. 2. Open deze map door er dubbel op te klikken. 3. In het nu geopende scherm zie je de map res. Res is een afkorting van resources (Engels voor hulpmiddelen). 4. Open deze map (dubbelklikken). Je kunt nu de plaatjes bekijken die we gaan gebruiken in het spel. Het plaatje background.png gaan we in de achtergrond zetten en het plaatje jet-net.png zetten we daar bovenop. Om deze plaatjes te gebruiken, gaan we weer naar KWrite en openen we het bestand Screen.java. In regel 113-119 zie je het volgende stuk code staan: try {
loadBackground(); } catch (Exception ex) { ex.printStackTrace(); } De functie loadBackground zorgt er straks voor dat er een nieuwe achtergrond wordt gemaakt. Maar in dit stukje code gebeurt er nog meer.
Handige taalconstructies Programmeertalen zijn meestal voorzien van een aantal handige constructies. Die worden gebruikt voor situaties waar computers regelmatig mee te maken hebben. We laten er hier een paar zien: • if [voorwaarde] then [opdracht 1] else [opdracht 2] Als aan de voorwaarde wordt voldaan (bijvoorbeeld controleren of de waarde in een variabele groter is dan 10) doe dan opdracht 1 anders doe opdracht 2. • while [voorwaarde] [opdracht] Voer de opdracht uit zolang aan de voorwaarde voldaan wordt.
22
Bouw je eigen game
informatica 1/2 havo/vwo
Handige taalconstructies (vervolg) • for ([beginwaarde]; [voorwaarde]; [pas beginwaarde aan]) [opdracht] Voer de opdracht uit zolang aan de voorwaarde voldaan wordt (inderdaad hetzelfde als while!). for is een speciale uitvoering van while. Vaak wil je een opdracht een bepaald aantal keer uitvoeren en dat kan met for iets makkelijker dan met while. Elke keer als de opdracht is uitgevoerd wordt de beginwaarde aangepast en de voorwaarde opnieuw getest. • switch [variabele] case [1] [opdracht] case [2] [opdracht] … Maak een keuze tussen een groot aantal mogelijkheden (gevallen). Als de waarde van de variabele gelijk is aan case [1] voer dan de opdracht uit die daarbij hoort. Ga anders verder naar case [2] en vergelijk de waarde van de variabele daarmee. Dit gaat net zolang door totdat de waarde van de variabele gelijk is aan een bepaalde case of totdat er geen cases meer zijn. • try .... catch De try/catch functie is bedoeld om problemen op te sporen. Je moet dit commando lezen als “probeer (try) dit uit te voeren en vang (catch) problemen op als die er zijn”.
De code in regel 113-119 ziet er dus wel ingewikkeld uit, maar het enige wat hier gebeurt is het aanroepen van de functie loadBackground. De try/catch functie zorgt ervoor dat eventuele problemen met de functie loadBackground netjes worden opgelost. loadBackground is een functie die speciaal voor dit spel is geschreven. In feite gebeurt er in loadBackground niets anders dan het aanroepen van de Javafunctie drawImage. Dat doen we twee keer. De eerste keer voor het tekenen van het plaatje background.png. De tweede keer voor het plaatje jet-net.png. Opdracht Om nieuwe plaatjes in de achtergrond te kunnen tekenen, moet loadBackground die plaatjes eerst nog van ons krijgen. LoadBackground verwacht die plaatjes in de twee variabelen backgroundImage en jetnetImage. Met de functie Image.createImage stoppen we onze plaatjes in deze twee variabelen. We gaan dit toevoegen aan het stukje code dat we net hebben gezien (regel 113-119). We krijgen dan:
try {
backgroundImage = Image.createImage(“/background.png”); jetnetImage = Image.createImage(“/jet-net.png”); loadBackground(); } catch (Exception ex) { ex.printStackTrace(); }
23
Bouw je eigen game
informatica 1/2 havo/vwo
Zoals je kunt zien, zijn er nu twee regels, beginnend met backgroundImage en jetnetImage toegevoegd. Deze regels komen tussen de eerste “{“ en de regel loadBackground();
!
Let op Let er weer goed op dat je de regels juist intikt, dus met de goede hoofdletters en kleine letters. Let vooral ook op de aanhalingstekens en puntkomma’s.
Om het resultaat te zien moet je nu eerst nog de bekende stappen uitvoeren: opslaan, terug naar J2ME WTK, compileren en uitvoeren (Build en Run). Nu kun je het spel spelen met de nieuwe achtergrond.
Afbeelding 9: Level 1 met de nieuwe achtergrond
24
Bouw je eigen game
informatica 1/2 havo/vwo
6.b Het spel mooier maken II Nu er een achtergrondplaatje in het spel zit, is het natuurlijk ook leuk om het standaard plaatje te vervangen door een plaatje naar je eigen smaak. Dit kan je op drie manieren doen: 1. Kies een plaatje uit de verzameling plaatjes die we op op de cd/USB-stick hebben gezet. 2. Zoek naar een plaatje op internet, bijvoorbeeld met Google Images. 3. Je kunt ook zelf een plaatje tekenen.
!
Let op Het scherm van onze simulator is een beetje langgerekt. Het wordt straks het mooist als je een plaatje uitzoekt of maakt dat ongeveer dezelfde verhoudingen heeft (breedte:hoogte = 3:4).
Helaas werkt het internet niet altijd in Slax, dus in dat geval moet je een plaatje van de cd/USB-stick gebruiken of zelf iets tekenen. Hieronder leggen we de verschillende manieren om een plaatje te zoeken of maken precies uit. Kies een plaatje van de cd/USB-stick De plaatjes die wij op de cd/USB-stick hebben gezet, vind je door op het bureaublad op het icoon van het huis te klikken (“Home”) en vervolgens in het geopende Konqueror venster naar de map achtergronden te gaan. Hier heb je een keus uit 25 plaatjes die je kunt gebruiken als achtergrond van je spel. 1. Selecteer het plaatje van je keus. 2. Druk op Ctrl-C om het plaatje te kopiëren. 3. Sluit het Konqueror venster en zorg dat het bureaublad nu zichtbaar is. 4. Druk op Ctrl-V om het plaatje op het bureaublad te zetten. Zoek een plaatje op internet Om het Internet op te gaan klik je op het icoon van de wereldbol in de taakbalk op het bureaublad. Dit start het programma Konqueror, de Internet browser van Slax. Ga naar www.google.nl en kies daar voor Afbeeldingen. Je kunt hier een aantal steekwoorden invullen van het soort plaatje dat je zoekt. Als je bijvoorbeeld als steekwoord Nederland invult, vind je dit plaatje:
Afbeelding 10: Een nieuw achtergrondplaatje
25
Bouw je eigen game
informatica 1/2 havo/vwo
Als je een plaatje gevonden hebt dat je graag als achtergrond zou willen gebruiken, moet je deze opslaan op het bureaublad: 1. Klik met de rechtermuisknop op het plaatje 2. Selecteer Save Image As… 3. Klik op Desktop in de linkerkant van het nieuwe scherm 4. Klik op de knop Save rechtsonder Sluit Konqueror nu weer af door op het kruisje rechtsboven te klikken. Zelf een plaatje tekenen Begin met stap 1, 2 en 4 van de onderstaande opdracht (in stap 3 wordt een bestaand plaatje geopend, maar dat is hier niet nodig). Je kunt nu zelf een plaatje tekenen op het witte vlak in KolourPaint. Maak, als je klaar bent met tekenen, de opdracht verder af. Opdracht Voordat je het plaatje als achtergrond kunt gebruiken, moet je eerst nog de afmetingen ervan aanpassen aan de maat van de simulator. Hiervoor gebruiken we KolourPaint. 1. Klik op de blauwe K linksonder in de taakbalk, dat opent het startmenu 2. Ga naar Graphics en kies hier Paint Program (KolourPaint)
Afbeelding 11: Het fotobewerkingsprogramma KolourPaint 3. Open je plaatje door te klikken op File en vervolgens op Open. In het nieuwe scherm klik je weer op Desktop aan de linkerkant en kies nu het plaatje dat je hebt opgeslagen. Als laatste klik je op Open rechtsonder in het scherm om je plaatje te openen. Je krijgt nu misschien een melding van het programma dat je monitor niet voldoende kleuren weergeeft (Low Screen Depth). Deze melding kun je negeren; klik op OK om de melding te sluiten.
26
Bouw je eigen game
informatica 1/2 havo/vwo
4. Om nu het plaatje aan te passen aan het formaat van de telefoon kies je in het menu Image voor Resize/Scale. Selecteer hier bij Operation: Smooth Scale, vul bij Width 240 in en bij Height 320. Klik vervolgens op OK om het plaatje aan te passen.
Afbeelding 12: Resize/Scale in KolourPaint 5. Nu je plaatje de juiste afmetingen heeft, kun je het zelf nog verder versieren. Je kunt de verschillende effecten die KolourPaint heeft hiervoor gebruiken. Als je het plaatje niet wilt aanpassen, kun je deze stap overslaan. 6. Nu moeten we het aangepaste plaatje nog opslaan op een plek waar ons programma het kan vinden. • Kies in het menu File voor Save As… • Klik in het nieuwe scherm twee keer op het icoontje met de pijl omhoog (het icoon helemaal links boven). Als het goed is staat er nu in de balk boven aan het scherm een /. • Ga nu naar de map /usr/java-wtk/apps/Jet-Net/res/ door in het grote veld op de juiste mappen te dubbelklikken. • Typ nu in het veld Location: background.png en kies in het veld Filter: voor PNG Image. • Klik vervolgens op Save om het plaatje op te slaan. • Kies in het popup scherm voor Overwrite. Hiermee overschrijf je het oude achtergrondplaatje. Het standaard achtergrondplaatje is nu vervangen door het plaatje dat je zojuist hebt uitgezocht.
27
Bouw je eigen game
informatica 1/2 havo/vwo
Afbeelding 13: Het opslaan van de afbeelding
Het achtergrondplaatje is nu aangepast. Je kunt het spel met de nieuwe achtergrond spelen door weer naar de J2ME WTK te gaan en daar het programma opnieuw te compileren en uit te voeren. Sluit de simulator weer af als je klaar bent met het spel te spelen.
28
Bouw je eigen game
informatica 1/2 havo/vwo
7. Het speelveld aanpassen De blokken, de bal en het balkje die je in het spel ziet, zijn ook plaatjes, net als de achtergrond. Laten we eerst eens kijken waar die plaatjes worden gebruikt in broncode van het spel. Informatie Ga weer naar KWrite en open het bestand BrickList.java. Op regel 99 tot 106 worden de plaatjes voor de verschillende blokken geladen. Voor elk type blok wordt een ander plaatje gebruikt; dit zijn dezelfde type blokken die je in opdracht 3 hebt gebruikt bij het maken van je eigen level. 1. 2. 3. 4. 5. 6. 7.
Z (zombie): F (fixed): S (slide): B (blue): R (red): Y (yellow): P (purple):
zombie_brick.png fixed_brick.png slide_brick.png blue_brick.png red_brick.png yellow_brick.png purple_brick.png
De plaatjes voor de bal en de balk worden gebruikt in het bestand Engine.java op regel 185 en 200. De makkelijkste manier om nieuwe plaatjes in het spel te gebruiken is door de plaatjes in de map res te vervangen. Wij hebben al nieuwe plaatjes voor je gemaakt, deze staan in de map new die je in de map res vindt. Opdracht Ga als volgt te werk om de plaatjes van de blokjes door nieuwe te vervangen: 1. Dubbelklik op de map Jet-Net op het bureaublad. 2. Open in het nieuwe scherm de map res en vervolgens de map new 3. Selecteer alle plaatjes (druk tegelijk op “Ctrl” en “a”). 4. Druk vervolgens tegelijk op de toetsen “Ctrl” en “c”. Hiermee kopieer je de plaatjes. 5. Ga nu terug naar de map res (het pijltje omhoog, linksboven op het scherm) en druk tegelijk op de toetsen “Ctrl” en “v”. Je krijgt nu een popup-scherm met de melding dat er al een bestand bestaat met deze naam. 6. Kies hier voor de optie Overwrite All. Hiermee zet je de nieuwe plaatjes over de oude plaatjes heen. De nieuwe plaatjes zijn nu klaar om gebruikt te worden in het spel. Ga dus weer naar de J2ME WTK om het programma te compileren en uit te voeren.
29
Bouw je eigen game
informatica 1/2 havo/vwo
Als alles goed is gegaan zie je nu het spel met de nieuwe blokken, bal en balk erin.
Afbeelding 14: Level 1 met de nieuwe blokken, bal en balk
Als je het leuk vindt kun je de plaatjes van de blokjes, bal en balk ook zelf aanpassen. Gebruik hiervoor het KolourPaint programma dat je in hoofdstuk 6.b hebt gebruikt. Gebruik File g Open in KolourPaint om de plaatjes te openen. Je vindt ze in de map /usr/java-wtk/apps/Jet-Net/res/ Van elk blokje, de bal en de balk zijn er twee plaatjes, één voor grote schermen (….png) en één voor kleine schermen (…_small.png). Zorg dat je allebei de plaatjes aanpast anders werkt het niet goed. Vergeet de plaatjes niet op te slaan (File g Save) als je ze aangepast hebt. Nadat je alle plaatjes hebt aangepast ga je weer naar de J2ME WTK om het spel te compileren en uit te voeren.
30
Bouw je eigen game
informatica 1/2 havo/vwo
8. Spelen op je eigen mobieltje Tot nu toe heb je het spel steeds in de simulator gespeeld. Het is natuurlijk het leukste om het spel op je eigen mobiele telefoon te gaan spelen. In principe kan het spel werken op een mobieltje dat Java MIDP2 ondersteunt (voluit: Mobile Information Device Profile version 2). Dat zijn tegenwoordig de meeste mobieltjes, maar in de praktijk blijkt het niet altijd te werken. Het wordt dus een kwestie van proberen. Opdracht We beginnen om het spel klaar te maken voor de mobiele telefoon. We gebruiken hiervoor een packager, een van de hulpprogramma’s uit onze toolkit. De packager maakt een speciaal pakket van je spel dat op je mobiele telefoon kan worden gezet. 1. Ga naar de J2ME WTK 2. Kies nu in het menu Project voor Package g Create Obfuscated Package. Er is nu een pakket van het spel gemaakt dat naar je mobiele telefoon gezonden kan worden. Dit pakket staat op: /usr/java-wtk/apps/Jet-Net/bin/ Jet-Net.jar.
Weg met kabels en snoeren Vind jij het ook zo lastig om apparaten met elkaar te verbinden? Altijd zijn de snoertjes kwijt, ze zitten in de knoop of zit er een verkeerde stekker aan. De Zweedse telefoonfabrikant Ericsson vond dat daar maar eens een eind aan moest komen en ontwikkelde Bluetooth, een manier om apparaten zonder draden met elkaar te laten communiceren. Bluetooth is speciaal gemaakt voor korte afstanden (tot ongeveer 10 meter) en gaat, net als radiosignalen, gewoon door allerlei materialen heen. Bluetooth is bedacht door een Nederlander die bij Ericsson in dienst was. De naam is echt Scandinavisch, naar een Vikingenkoning die Harald Blauwtand heette.
Omdat we geen koffers vol met snoertjes mee kunnen slepen voor al jullie verschillende mobieltje, gaan we Bluetooth gebruiken om het spel van de computer naar je mobiele telefoon te verzenden. Veel van de moderne mobiele telefoons beschikken over Bluetooth. Hopelijk die van jullie ook.
31
Bouw je eigen game
informatica 1/2 havo/vwo
Afspraken, maar dan anders. Standaarden zijn afspraken over hoe je dingen doet. Iedereen in Nederland weet dat je moet stoppen als het stoplicht rood is en dat auto’s van rechts voorrang hebben. Het zou heel handig zijn als iedereen dezelfde standaarden zou gebruiken, maar helaas is dat niet altijd zo. Bijna elk land heeft zijn eigen taal en zijn eigen geld, maar ook stopcontacten kunnen per land anders zijn. Bij mobiele telefoons is het precies hetzelfde. Bijna alle nieuwe telefoons ondersteunen Java MIDP2 en Bluetooth (beide zijn een standaard). Toch doen alle merken dat net even anders. Hierdoor kan het gebeuren dat jouw spel, dat voldoet aan de Java MIDP2 standaard, het toch niet doet op een mobiele telefoon met MIDP2. Hetzelfde geldt voor Bluetooth. In Bluetooth is afgesproken hoe je bestanden kunt uitwisselen. Dit heet OBEX (Object Exchange). Helaas is het bij de meeste Samsung-telefoons officieel nog niet mogelijk om zelf via Bluetooth spelletjes op je mobiele telefoon te zetten. Voor sommige oudere Nokia-telefoons heb je Nokia PC Suite nodig (dat alleen op Windows werkt) om via Bluetooth spelletjes te laden.
Als je een mobiele telefoon van Samsung hebt, gaat het helaas waarschijnlijk niet lukken om je spelletje erop te zetten. Als je een oudere mobiele telefoon van Nokia (met Bluetooth) hebt dan kun je eerst via de opdracht proberen om zelf het spel op je mobieltje te zetten. Als dit niet lukt moet je even naar een begeleider gaan. Die kan je helpen om op een aparte computer het programma Nokia PC Suite te gebruiken dat op Windows draait om je spelletje op je mobiele telefoon te zetten. De te volgen stappen vind je in bijlage C zodat je het thuis ook zelf kunt doen.
32
Bouw je eigen game
informatica 1/2 havo/vwo
Heb je een ander merk mobiele telefoon (bijv. SonyEricsson of Motorola) en zit er Bluetooth op, dan kun je onderstaande stappen uitvoeren om te proberen het spelletje erop te zetten. Opdracht We maken gebruik van een Bluetooth USB-stick. Die lijkt veel op een USB Memory stick, maar is een piepklein zendertje dat volgens de Bluetoothstandaard signalen uitzendt. Je kunt een Bluetooth USB-stick lenen bij een van de begeleiders. 1. Stop de Bluetooth USB-stick in je computer 2. Zet Bluetooth aan op je mobiele telefoon en stel je telefoon zo in dat Bluetooth zichtbaar (discoverable) is. In elke telefoon werkt dit net even anders, Als je er zelf niet uitkomt kun je even iemand anders in je klas of een begeleider vragen om je te helpen. 3. Open het startmenu op je computer (grote K linksonder) en ga naar Internet g Bluetooth OBEX Client. 4. Klik in de Bluetooth OBEX Client op Search (linksonder) en wacht tot je telefoon in de lijst verschijnt. Selecteer nu jouw telefoon in de lijst door erop te klikken.
Afbeelding 15: De Bluetooth OBEX Client 5. Ga in de bovenste helft van het scherm naar /usr/java-wtk/apps/JetNet/bin/ (klik op het icoon met het pijltje omhoog helemaal linksboven en klik vervolgens op de juiste mappen: usr, java-wtk, apps, Jet-Net en als laatste bin) 6. Sleep het bestand Jet-Net.jar uit het bovenste veld naar het veld rechtsonder (File to send:)
Afbeelding 16: Verzend het bestand
33
Bouw je eigen game
informatica 1/2 havo/vwo
7. Klik op de knop Send om het bestand te versturen naar je mobiele telefoon. 8. Accepteer het bestand op je mobiele telefoon en sla het op. Het spel is nu opgeslagen op je mobiele telefoon.
!
Let op Vergeet niet de Bluetooth USB-stick weer terug te geven aan een van de begeleiders.
Je kunt nu het spel op je mobiele telefoon gaan spelen! Hoe het spel gestart kan worden, hangt af van het type mobiele telefoon. Jij weet waarschijnlijk meer van jouw mobiel dan wij, dus je zult zelf even uit moeten zoeken hoe je het spelletje kunt starten. In hoofdstuk 3 heb je gezien dat je door op 1 te drukken naar het volgende level kunt gaan en dat je met de 3 en de 9 het spel kunt versnellen of vertragen. Op een echte telefoon kunnen dit andere toetsen zijn. Op de SonyEricsson W810 ga je met de 7 naar het volgende level. Met de 9 en # kun je sneller of langzamer spelen. Welke toetsen je moet gebruiken op je eigen telefoon, kun je opzoeken door in het menu van het spel naar de optie Instructies te gaan. Hier zie je een voorbeeld van het spel op een SonyEricsson W810:
Afbeelding 17: Het spel op een SonyEricsson W810
34
Bouw je eigen game
informatica 1/2 havo/vwo
9. Het spel opslaan Slax is bedoeld om vanaf cd/USB-stick te draaien en slaat je aanpassingen aan het spel daarom niet automatisch op. Alles wat je doet speelt zich af in het geheugen van de computer en er wordt niets opgeslagen op de harddisk. Als je de computer nu uit zou zetten, gaat al je werk verloren! Dat wil je natuurlijk niet. Daarom ga je nu je werk opslaan op je eigen USB-memorystick of floppy. Het gebruik van een USB-stick is verreweg het makkelijkst!
!
Let op Als je Slax vanaf USB-stick draait, moet deze in de computer blijven zitten. Je hebt dus een andere USB-stick en een tweede USB-poort nodig om je werk op te slaan.
USB-memorystick 1. Steek je USB-memorystick in de computer 2. Er verschijnt nu een popup die vraagt wat je wilt doen met de USB memory stick. Kies hier voor Open in New Window en klik op OK. Dit opent het programma Konqueror dat lijkt op de Windows Verkenner.
Afbeelding 18: Open de USB-stick in een nieuw venster 3. Dubbelklik op het icoon Jet-Net op de desktop. Dit opent een 2e Konqueror. 4. Ga in dit nieuwe scherm van Konqueror één niveau omhoog (klik op het icoon met de pijl omhoog), je bent nu in /usr/java-wtk/apps/. 5. Selecteer de map Jet-Net door er één keer op te klikken. Druk nu tegelijk op de toetsen “Ctrl” en “c”. Hiermee kopieer je de map met al jouw werk. 6. Ga nu terug naar het 1e scherm van Konqueror waar je de inhoud van je USB memory stick ziet staan. Druk hier tegelijk op de toetsen “Ctrl” en “v” om je werk naar de USB memory stick te kopiëren. Als je een popup krijgt met de melding dat een map of bestand al bestaat op je USB memory stick, kies dan voor Overwrite All.
35
Bouw je eigen game
informatica 1/2 havo/vwo
7. Om het opslaan van de data af te ronden moet je de USB memory stick unmounten. Dit kan je vergelijken met het veilig verwijderen van je USB memory stick in Windows. Dit doe je door in het Konqueror scherm één niveau omhoog te gaan (icoon met de pijl omhoog), je zit dan in system:/media/. Klik nu met de rechtermuisknop op het icoon van de memory stick en kies voor Safely Remove.
!
Let op Het is erg belangrijk dat je stap 7 uitvoert, want anders is de kans groot dat je spelletje niet helemaal op je USB memory stick staat!
8. Je kunt je USB memory stick nu veilig uit de computer halen. Je werk is nu veilig opgeslagen op je USB memory stick. Als je nu nog iets verandert aan het spel op de computer dan moet je deze stappen opnieuw uitvoeren om de nieuwste versie van je spel op je USB-memorystick te zetten. Floppy Als je geen USB memory stick hebt, kun je het spel ook op floppy opslaan. 1. Stop de floppy in de computer. 2. Dubbelklik op het icoon System op het bureaublad. Dit opent het programma Konqueror. 3. In het nieuwe scherm dubbelklik je op het icoon Storage Media en vervolgens dubbelklik je op het icoon Floppy. 4. Je krijgt nu een melding dat de floppy gemount wordt, dit betekent dat de floppy klaar gemaakt wordt voor gebruik. 5. Dubbelklik op het icoon Jet-Net op de desktop. Dit opent een 2e Konqueror. 6. Ga in dit nieuwe scherm van Konqueror één niveau omhoog (klik op het icoon met de pijl omhoog), je bent nu in /usr/java-wtk/apps/. 7. Selecteer de map Jet-Net door er één keer op te klikken. Druk nu tegelijk op de toetsen “Ctrl” en “c”. Hiermee kopieer je de map met al jouw werk. 8. Ga nu terug naar het 1e scherm van Konqueror waar je de inhoud van je floppy ziet staan. Druk hier tegelijk op de toetsen “Ctrl” en “v” om je werk naar de floppy te kopiëren. Als je een popup krijgt met de melding dat een map of bestand al bestaat op je floppy, kies dan voor Overwrite All. 9. Om het opslaan van de data af te ronden moet je de floppy unmounten. Dit kan je vergelijken met het veilig verwijderen van je USB memory stick in Windows. Dit doe je door in het Konqueror scherm één niveau omhoog te gaan (icoon met de pijl omhoog), je zit dan in system:/media/. Klik nu met de rechtermuisknop op het icoon van de floppy en kies voor Unmount.
!
Let op Het is erg belangrijk dat je stap 9 uitvoert anders is de kans groot dat je spelletje niet helemaal op je floppy staat!
10. Je kunt je floppy nu veilig uit de computer halen. Je werk is nu veilig opgeslagen op je floppy. Als je nu nog iets verandert aan het spel op de computer dan moet je deze stappen opnieuw uitvoeren om de nieuwste versie van je spel op je floppy te zetten.
36
Bouw je eigen game
informatica 1/2 havo/vwo
10. Thuis programmeren en spelen Thuis kun je nog verder gaan met het aanpassen van het spel of het spelen van je spel op je computer. Hiervoor moet je het werk dat je in hoofdstuk 9 hebt opgeslagen weer laden. Natuurlijk heb je eerst weer Linux nodig. Start dus eerst de cd weer op zoals is beschreven is in hoofdstuk 2 van de handleiding. Nu kun je het spel thuis op de computer kopiëren. USB- memorystick Als je een USB memory hebt gebruikt, kopieer je het spel als volgt: 1. Steek je USB stick in de computer 2. Er verschijnt nu een popup die vraagt wat je wilt doen met de USB memory stick. Kies hier voor Open in New Window en klik op OK. Dit opent het programma Konqueror dat lijkt op de Windows Verkenner. 3. Selecteer de map Jet-Net op je USB memory stick door er één keer op te klikken. Druk nu tegelijk op de toetsen “Ctrl” en “c”. Hiermee kopieer je de map met al jouw werk. 4. Dubbelklik op het icoon Jet-Net op de desktop. Dit opent een 2e Konqueror. 5. Ga in dit nieuwe scherm van Konqueror één niveau omhoog (klik op het icoon met de pijl omhoog), je bent nu in /usr/java-wtk/apps/. 6. Druk hier tegelijk op de toetsen “Ctrl” en “v” om je werk naar de computer te kopiëren. Je krijgt nu een popup met de melding dat deze map al bestaat op de computer, kies hier voor Overwrite All. 7. Voor je de USB memory stick uit de computer haalt moet je deze unmounten. Dit kan je vergelijken met het veilig verwijderen van je USB memory stick in Windows. Dit doe je door in het Konqueror scherm van je USB memory stick één niveau omhoog te gaan (icoon met de pijl omhoog), je zit dan in system:/media/. Klik nu met de rechtermuisknop op het icoon van de memory stick en kies voor Safely Remove. Je bent nu klaar om het spel te spelen of om het aan te passen zoals beschreven is in de eerdere opgaven in deze handleiding. Na het aanpassen van het spel op de computer moet je het weer saven (zoals in hoofdstuk 9) om te zorgen dat alle wijzigingen op je USB memory stick worden opgeslagen. Floppy Als je je werk op een floppy had opgeslagen voer je de volgende stappen uit: 1. Stop de floppy in de computer. 2. Dubbelklik op het icoon System op het bureaublad. Dit opent het programma Konqueror. 3. In het nieuwe scherm dubbelklik je op het icoon Storage Media en vervolgens dubbelklik je op het icoon Floppy. 4. Je krijgt nu een melding dat de floppy gemount wordt, dit betekent dat de floppy klaar gemaakt wordt voor gebruik. 5. Selecteer de map Jet-Net op de floppy door er één keer op te klikken. Druk nu tegelijk op de toetsen “Ctrl” en “c”. Hiermee kopieer je de map met al jouw werk.
37
Bouw je eigen game
informatica 1/2 havo/vwo
6. Dubbelklik op het icoon Jet-Net op de desktop. Dit opent een 2e Konqueror. 7. Ga in dit nieuwe scherm van Konqueror één niveau omhoog (klik op het icoon met de pijl omhoog), je bent nu in /usr/java-wtk/apps/. 8. Druk hier tegelijk op de toetsen “Ctrl” en “v” om je werk naar de computer te kopiëren. Je krijgt nu een popup met de melding dat deze map al bestaat op de computer, kies hier voor Overwrite All. 9. Voor je de floppy uit de computer haalt moet je deze unmounten. Dit kan je vergelijken met het veilig verwijderen van je USB-memorystick in Windows. Dit doe je door in het Konqueror scherm één niveau omhoog te gaan (icoon met de pijl omhoog), je zit dan in system:/ media/. Klik nu met de rechtermuisknop op het icoon van de floppy en kies voor Unmount. Je bent nu klaar om het spel te spelen of om het aan te passen zoals beschreven is in de eerdere opgaven in deze handleiding. Na het aanpassen van het spel op de computer moet je het weer saven (zoals in hoofdstuk 9) om te zorgen dat alle wijzigingen op je floppy worden opgeslagen.
38
Bouw je eigen game
informatica 1/2 havo/vwo
11. Afsluiting Dit is het einde van het maken van je eigen game. Voordat je de computer uit zet is het belangrijk dat je je werk hebt opgeslagen op een USB-stick of op een floppy (zie hoofdstuk 9). Als je dat hebt gedaan kun je nu de computer afsluiten: 1. Klik in het startmenu (grote K linksonder) op Log Out… 2. Je krijgt nu een pop-up scherm te zien met de melding End Session for ‘root’. Klik hier op ‘End Current Session’. 3. De computer zal nu gaan afsluiten. 4a. Als je de les van cd uitvoert. Vlak voordat de computer uit gaat zal de cd-speler opengaan zodat je de cd eruit kunt halen. Zorg ervoor dat je hier klaar voor bent, want de cd-speler gaat ook weer heel snel dicht! Als je de cd niet uit de speler hebt kunnen halen, kun je de computer weer aanzetten en snel op het Open-knopje van de speler drukken. Je kunt nu rustig de cd uit de speler halen. 4b. Als je de les van USB-stick uitvoert. Haal de USB-stick uit de computer als deze klaar is met afsluiten en geef hem aan het einde van de les weer terug aan de begeleiders. Je mag de cd mee naar huis nemen. Je kunt hem thuis gebruiken om het spel nog verder aan te passen of gewoon op je computer te spelen. Als je het leuk vindt kan je ook nog andere mogelijkheden van Slax ontdekken. Er staan namelijk nog een heleboel andere programma’s op de cd, bijvoorbeeld om mee te internetten en te chatten, de Linux equivalenten voor Word, Excel en Powerpoint en nog veel meer. Extra informatie Er valt nog veel meer te vertellen over Slax, Linux en over spelletjes programmeren. Meer informatie over Slax vind je op: http://www.slax.org/?lang=nl Als je meer wilt weten over Linux en de verschillende Linux distributies dan is Wikipedia een goed beginpunt: http://nl.wikipedia.org/wiki/Linux Als je het leuk vindt om spelletjes te programmeren dan kun je ook eens kijken naar Make-a-Game. Dit is een wedstrijd voor middelbare scholen om computerspelletjes te maken: http://www.make-a-game.nl Wij vonden het heel leuk om jullie iets te laten zien over het programmeren van games en het werken met Linux. We hopen dat jullie er net zoveel plezier in hebben gehad.
39
Bouw je eigen game
informatica 1/2 havo/vwo
Bijlage A. Extra tekenpapier voor je eigen level
1
2
3
4
5
6
7
8
9
10
11
1
2
3
4
5
6
7
8
9
10
11
1 2 3 4 5 6 7 8
1 2 3 4 5 6 7 8
40
Bouw je eigen game
informatica 1/2 havo/vwo
Bijlage B. De opbouw van het spel Hieronder zie je hoe ons spel uit modules is opgebouwd. Er zijn zelfstandige modules voor het tekenen, de kleuren, de blokken, de bal, enzovoort.
JBricksMIDlet.java Het startpunt van het spel. Zorgt voor het starten en stoppen van het spel.
Screen.java
Engine.java
GameMenu.java
Zorgt voor het tekenen op het scherm.
De motor van het spel. Zorgt voor het verwerken van de input en voor het bewegen van de verschillende onderdelen.
Zorgt voor het menu van het spel.
ThreeDColor.java
TextForm.java
Bevat alle kleuren die in het spel gebruikt worden.
Kan korte berichten op het scherm laten zien.
Util.java
EngineState.java
BrickList .java
Ball.java
Bevat extra wiskundige functies.
Houdt de toestand van het spel bij.
Bevat alle blokken van een level.
De bal van het spel.
Brick.java Een blok in het spel.
41
Bouw je eigen game
informatica 1/2 havo/vwo
Bijlage C. Het spel op Nokia telefoons Om het spel op een oudere Nokia-telefoon te zetten, moet je eerste de eerste opdracht uit hoofdstuk 8 hebben uitgevoerd (Create Obfuscated Package). Daarna kun je hoofdstuk 9 uitvoeren om je spel op je eigen USB stick te zetten. Volg daarna de stappen hieronder om het spel via de Nokia PC Suite op je Nokia telefoon te zetten. 1. Start de computer opnieuw op in Windows (voer hoofdstuk 11 uit en vergeet de Slax CD niet uit de cd-speler te halen). 2. Kopieer de bestanden Jet-Net.jar en Jet-Net.jad van je USB stick of floppy naar het bureaublad van je computer. Deze bestanden vind je op je USB stick of floppy in de map Jet-Net\bin. 3. Ga naar de website van Nokia en download de Nokia PC Suite: http://www.nokia.nl/A4393234 4. Installeer de Nokia PC Suite op je computer. 5. Start de Nokia PC Suite: Start g Alle Programma’s g Nokia PC Suite g Nokia PC Suite 6. Klik op “Verbinding Maken” rechtsonder in het scherm.
Afbeelding 19: Nokia PC Suite 7. Volg de stappen op het scherm om je telefoon te verbinden met je computer. 8. Klik op “Toepassingen installeren” rechtsboven in het scherm van de Nokia PC Suite.
42
Bouw je eigen game
informatica 1/2 havo/vwo
9. Het programma Nokia Application Installer wordt nu gestart.
Afbeelding 20: Nokia Application Installer 10. Kies in het linker drop-down menu het Bureaublad om de inhoud daarvan te tonen. Selecteer het bestand Jet-Net.jar in het linker deel van het scherm. Bij “Informatie over de toepassing” komt nu te staan dat dit de Jet-Net game is. 11. Klik op de groene pijl in het midden van het scherm om het spel op je Nokia telefoon te zetten. 12. Volg de instructies op het scherm van je mobiele telefoon om het spel te installeren. Het spel is nu klaar om gespeeld te worden!
43
Bouw je eigen game
informatica 1/2 havo/vwo
Bijlage D. De les op een USB-stick Steeds meer scholen hebben geen cd-speler meer in de computers voor de leerlingen. Om de les toch te kunnen volgen is het mogelijk om de hele inhoud van de cd op een USB-stick te zetten. Per computer waarop de les wordt uitgevoerd is een USB-stick nodig. In deze bijlage wordt stap voor stap uitgelegd hoe dat in z’n werk gaat. Benodigdheden voor de voorbereiding • Een Windows-computer met cd-speler. • Een of meer USB-sticks van minimaal 512 MB waarvan alle data mag worden verwijderd. Doorloop nu de volgende stappen: 1. Start de computer op in Windows. 2. Stop de cd in de cd-speler van de computer (pas als Windows is opgestart). 3. Stop de USB-stick in de computer. 4. Start de Windows verkenner met de toetscombinatie -E (de Windows-toets zit op het toetsenbord naast de Alt-toets). 5. Klik in de Windows Verkenner met de rechtermuisknop op de USB-stick en klik op formatteren (format in de Engelse versie).
Afbeelding 21: Formatteren in de Windows Verkenner 6. Selecteer in het nieuwe venster bij de Opties ‘Snel Formatteren’ (Quick format) en druk op Start 7. Er verschijnt nu een pop-up venster dat alle data van de drive wordt verwijderd. Controleer nogmaals dat de juiste USB-stick is geselecteerd en klik vervolgens op OK. Alle data wordt nu van de USBstick verwijderd.
44
Bouw je eigen game
informatica 1/2 havo/vwo
8. Selecteer in de Windows Verkenner nu de cd-speler met de Jet-Net cd. 9. Selecteer alle data op de cd, behalve de map ‘source’
Afbeelding 22: Alles selecteren in de Windows Verkenner 10. Kopieer de geselecteerde data (Ctrl-C) en klik vervolgens op de USBstick in de Verkenner. Plak de gekopieerde data op de USB-stick (Ctrl-V). Het kopiëren van de data duurt 5 tot 10 minuten. 11. Dubbelklik op het bestand USB.bat op de USB-stick. Er verschijnt nu een venster met de melding dat de USB-stick wordt klaargemaakt voor de les. Controleer of de drive die in het venster wordt genoemd overeenkomt met de locatie van de USB-stick. Druk vervolgens op een willekeurige toets.
Afbeelding 23: De USB-stick geschikt maken De USB-stick is nu klaar voor gebruik. Herhaal de stappen vanaf stap 3 om meerdere USB-sticks voor te bereiden. Volg de stappen in hoofdstuk 2 om de les te starten vanaf de USB-stick.
45
Bouw je eigen game
informatica 1/2 havo/vwo
Aantekeningen
46
Bouw je eigen game
informatica 1/2 havo/vwo
47
Bouw je eigen game
informatica 1/2 havo/vwo
48
Bouw je eigen game
informatica 1/2 havo/vwo
Sun JavaTM Wireless Toolkit, version 2.2 for Connected Limited Device Configuration and JavaTM Platform, Standard Edition, Development Kit 6. Copyright © 1997−2007, Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, California 95054, U.S.A. Java and all trademarks and logos based on Java are trademarks or registered trademarks of Sun Microsystems, Inc. in the U.S. and other countries.
49
Meer informatie over Jet-Net vind je op:
www.jet-net.nl