Les 4a: Game krab vangt appeltjes

De Crab die appeltjes vangt

Als je het bovenstaande flimpje bekijkt zie je een heel veel dingen. Schrijf ze maar eens op. Veel van deze dingen heb je in de vorige lessen al geleerd.

De snelle route

————————————————————————————————————-

Haal de kat weg

Kies de sprite: crab

Kies de sprite: apple

Maak nog een uitlijk aan en geef de appel een andere kleur

Kies de sprite: apple, deze krijgt nu de naam apple2

Maak nog een uiterlijk aan en geef de appel een andere kleur

Ga naar de achtergrond Desert en maak er nog een aan

We hebben nu 3 sprites die we gaan programmeren

De code voor de crab staat hieronder:

In deze code maken we gebruik van levens. Je kunt de code dus nog niet testen. Levens is een variabele dus die moet je nog aanmaken. onderstaand staat de code.

 

De code voor apple staat hieronder

 

 De code voor apple2 staat hieronder:

 

Verander de achtergrond in: desert 

Maak nog een uiterlijk in desert aan en zet hier de tekst in:

Einde van het spel

———————————–Einde van de snelle route——————————-dinge

 

We gaan eerst de sprite “cat” verwijderen, want die hebben we niet nodig.
Klik op de prullenbak bij de sprite (rechts onderaan) en de poes (cat) zal verdwijnen.

Klik daarna in het vak waar de sprite stond, en dat nu leeg is, op het sprite-teken met de plus.
Er verschijnt een bibliotheek met allemaal sprite figuren.

Zoek naar “crab” en laat deze in het programma door er met de linker muisknop op te klikken.

We zetten de crab midden onderaan, zie het onderstaande plaatje. Dit kun je doen door de sprite in het voorbeeldveld in het midden te zetten maar je kunt ook de getallen naast x en y wijzigen. Probeer dat maar eens. x kan maximaal tussen -220 en 220 liggen. Y kan tussen -120 en 120 liggen. 

Maak de sprite ook kleiner . Klik daarvoor op het getal 100 naast het woord Grootte en maak daar dan 50 van.

We plaatsen in het scriptveld nu het blokje “wanneer op de groene vlag wordt geklikt” uit Gebeurtenis en maken daar een “herhaal-blokje” uit Besturen aan vast.

De crab moet naar links en rechts kunnen bewegen. Hij moet dus reageren op: “Als ik op het pijltje naar rechts klik” of op: “Als ik op het pijltje naar links klik”.

We nemen daarvoor het blokje “Als…. dan” uit Besturen en plaatsen dat in het herhaal blokje. We nemen daarna het blokje “Toets spatiebalk ingedrukt” uit Waarnemingen en plaatsen dat in het vakje tussen de woorden “als” en “dan”. Klik dan op het driehoekje naast het woord “spatiebalk” en kies dan voor: “pijltje rechts”. Er staat nu dus eigenlijk: “als pijltje rechts ingedrukt dan”.

Neem nu het blokje: “neem 10 stappen” uit Beweging en plaats dat in het “als..dan” blokje.

Als het goed is ziet jouw script van de crab er nu zo uit:

Nu moet je hetzelfde doen om de crab naar links te laten lopen. Je kunt de stappen herhalen maar je kunt ook een kopie maken van de stappen die je al gedaan hebt.

Ga op het “als…dan” blokje staan met je muis en klik dan op de rechter muisknop. Klik dan op de mogelijkheid: “Kopie maken”. Er verschijnt een kopie van het “als..dan” blok. Plaats dit kopie onder het al gemaakte blok. Je hebt nu 2 dezelfde “als…dan” blokken onder elkaar. Het onderste “als…dan” blok moet je aanpassen. Klik daar op het driehoekje achter “pijltje rechts” en kies dan voor “pijltje links”. Verander ook de 10 in “neem 10 stappen” in: – 10, om de crab de andere kant op te laten gaan.

Jouw script ziet er nu als volgt uit:

De crab hoeft alleen onderaan te bewegen en dan is het handig als je bij het starten van het spel, de crab meteen op de goede plaats zet. Midden onderaan.

Als er op de vlag geklikt wordt moet hij naar midden onderaan, en dat wordt gedaan door de x-coördinaat en de y-coördinaat.

Plaats het bokje: “Ga naar x 33 y -156 uit “bewegen” meteen onder het blokje “wanneer op de groene vlag wordt geklikt” en boven het blokje “herhaal”.

Als je nu op de groene vlag klikt staat de crab meteen op de juiste plek en kun je met de pijltjes toetsen de crab naar links en rechts bewegen.

We gaan nu de sprite voor appeltjes toevoegen.

Ga daarvoor naar het vak waar de sprite crab staat, en klik dan weer op de sprite met het + teken, rechts onderaan in dat vak. Er verschijnt een bibliotheek met allemaal sprite figuren. Zoek naar “apple” en laat deze in het programma door er met de linker muisknop op te klikken. We maken deze apple meteen een stuk kleiner (anders wordt die wel heel makkelijk gevangen). We maken de apple ook de helft kleiner. Van 110 naar 50.

 Zo nu eerst even een filmpje over het aanpassen van uiterlijken. 

We gaan de apple een andere kleur geven. We gaan hem geel maken.
Klik op het map: Uiterlijken en klik dan op de verf-emmer aan de linkerkant. Zie het icoontje hiernaast

Klik dan op het driehoekje naast het woord Vulling en schuif het rondje op de balk bij kleur zover naar links of rechts tot je kleur no 18 hebt. De gele kleur. Klik dan op de rode appel en je ziet dat die appel een gele kleur krijgt i.p.v. rood.

We willen straks misschien het uiterlijk van de sprite apple kunnen laten veranderen.
Daarom maken we een tweede uiterlijk door in het sprite veld op de sprite van de apple te klikken. De apple is nu geselecteerd (het prullenbakje is nu zichtbaar) en klik op de rechter muistoets en dan op “dupliceren” te klikken.

Je hebt nu de sprite-uiterlijken Apple en Apple2 van de sprite Apple.

We passen het eerste uiterlijk van Apple aan en maken die groen. Nu heeft de sprite Apple dus 2 uiterlijken. Een groene kleur en een gele.

Je kunt ook de naam van de sprite veranderen. Zoek het in het veld hiernaast en wijzig de naam.

 

d

 

 We gaan terug naar het tabblad Code en brengen in het scriptveld van Apple de blokken “Wanneer op de groene vlag wordt geklikt” en “herhaal” zoals we dat in het scriptveld van Crab hebben gedaan.

Breng nu het blokje: “Verander y met 10” van “beweging” in het blokje “Herhaal” en verander het getal 10 in -3. (-3 geeft de snelheid van vallen aan. -4 is sneller, -5 is nog sneller enz.).

We willen nu de sprite heel precies op het scherm zetten. Dus bijvoorbeeld in het midden van het scherm,. Alleen een computer weet niet wat het midden is en kent alleen getallen. Dit lossen programmeurs op door alles wat je horizontaal (van links naar rechts) met x  aan te geven en alles wat je van boven naar beneden (verticaal) wil aangeven met y.  Het midden van het scherm is 0, dus x=0 en y=0.

De linkerrand is  x=  -220  (zie je het – teken staan)

De rechterrand is x= 220.

De bovenkant van het scherm is y= 180

De onderkant is y=  -180 (zie je het – teken staan)

zie het onderstaande plaatje

 We kunnen een sprite ook in een bepaalde richting laten bewegen, dit noemen we de richting de onderste 4 plaatjes zijn voorbeelden van richting.

 

Nu we dit weten gaan we de sprite op de juiste plek zetten.

De appel moet altijd bovenaan beginnen
en ook nog op een willekeurige plek als er op de groene vlag wordt
geklikt. Dus we brengen in het scriptveld van Apple weer een blokje “Wanneer op de groene vlag wordt geklikt” aan en plak daaronder het blokje “Ga naar x 210 en y 261

Nu willen we dat de sprite ergens bovenaan links of rechts begint, maar ook iedere keer op een ander x waarde. Uit “Functie” kies je nu het blokje “Willekeurig getal tussen 1 en 10” op plaatst het in het rondje dat achter x staat. Dan gaan we de getallen 1 en 10 aanpassen. Je begint links met -220 tot helemaal rechts 220. Verander dus de 1 in -220 en de 10 in 220. Dus ergens tussen die 2 getallen, -220 (helemaal links) en 220 (helemaal rechts) moet de appel bovenaan verschijnen.

Als de appel helemaal beneden komt (y= -170), moet hij weer bovenaan opnieuw beginnen (y= 180). Dit gaan we inbouwen met een “Als…dan” blokje. Zet een “Als…dan” blokje uit “besturen” in het script binnen het “herhaal” blokje onder “verander y met -3”.

Tussen de woorden “als” en “dan” zetten we een functie. We halen het blokje “O < 50 “ (dat betekent dat wat je bij het O invoert, kleiner moet zijn dan 50) uit “Functie” en plaatsen dat op de plek tussen de woorden “als” en “dan”. In het rondje wordt nu het blokje “y-positie” uit “beweging” geplaatst. Er staat nu dus: “Als de y-positie < 50, dan”. Verander nu de y-positie 50 in y-positie -170 in dat “als…dan” blok.


Nu moet je nog zeggen wat er dan moet gebeuren. De appel moet weer naar een willekeurige plaats bovenaan, zoals aan het begin van het spel.
Kopieer daarom het script dat je daarvoor al gemaakt hebt ( ga naar x willekeurig getal tussen -220 2n 220 y 180) naar dit “als…dan” blokje en plaats het in de lege regel onder “als…dan”.

Het scriptvenster van Apple ziet nu zo uit:

Haal weer een “als…dan” blokje uit “besturen” en plaats dat onder het eerste “als…dan” blok in het herhaal blok. Plaats nu het blokje “raak ik muisaanwijzer “ uit “waarnemen” en plaats dit in het vakje tussen de woorden “als” en “dan” . Klik op het driehokje naast het woord muisaanwijzer en kies dan voor: Crab.
Als de Crab geraakt wordt moet de appel weer bovenaan op een willekeurige plaats beginnen. Dus we kopiëren dezelfde regel als vorige keer (ga naar x willekeurig getal tussen -220 en 220 y 180) weer naar de lege plek onder de “Als raak ik Crab dan”.

Nu gaan we nog iets toevoegen. Als de appel de Crab raakt, moet de appel van kleur veranderen. Sleep daarom het blokje: “verander uiterlijk naar apple2 “ uit “uiterlijken” naar de plek onder de regel “Als raak ik de crab dan”.

Zet onder dat blokje, het blokje “Start geluid Chomp” uit “geluid”.

Zet daaronder dan het blokje “wacht 1 sec” uit “besturen” en verander de 1 in 0.3 sec.

Daarna moetje de appel weer terug veranderen naar de kleur van de eerste apple.

Sleep daarom het blokje “verander uiterlijk naar apple” uit “uiterlijken” onder het blokje “Start geluid Chomp”. Verander apple2 naar

Het scriptvenster van Apple ziet nu zo uit:

Nu willen we scores bijhouden.

We maken een variabele aan.

Een variable is zoiets als een doos waar je verschillende dingen in kunt stoppen en uithalen. Maar telkens maar één ding tegelijk. Zo kun je bijvoorbeeld een variabele (doos) met de naam “Voornaam” maken en telkens een andere voornaam in die doos stoppen. Als je dan in de doos “Voornaam” kijkt, kun je zien welke voornaam er dan in zit.

Ga daarvoor naar “Variabelen” en klik dan op de mogelijkheid:

“Maak een variabele”.

 

Je krijgt dan een invulvenster, en vul daarin “score” omdat jouw variabele score gaat heten.

Klik daarna op de Ok knop.

Sleep nu het blokje “maak ……. O” uit “Variabele” naar het script van de twee regels die wordt gebruikt bij het starten van het programma. Zet het meteen onder het blokje “Wanneer op de groene vlag wordt gedrukt”.

Klik op het driehoekje naast “mijn variabele” en kies dan voor “score”. Nu staat er “maak mijn score 0”. En dit gebeurt dan als het programma start.

 

Nu moet ik zorgen dat elke keer als ik de appel de crab raakt, de score met 1 veranderd.

Daarvoor sleep je het blokje “verander ……… met 1” uit “Variabele” naar de herhaal lus en plaats het tussen “als raak ik de crab dan” blokje en het blokje ” verander uiterlijk naar apple2″. De tekst “mijn variabele” verander ik in “score” door op het driehoekje te klikken en voor score te kiezen.

De snelheid hadden we op -3 gemaakt. Nu willen we dat de snelheid telkens verandert en maken die dus ook variabel.

We maken een variabele “snelheid” aan. We weten nu hoe we dat moeten doen.

Zet nu in het blokje ‘verander y met -3” de variabele “snelheid” op de plaats van de -3 .

Sleep het blokje maak snelheid 0 naar het scriptblok van het opstarten en maak dan van de 0, -3. De snelheid waarmee begonnen wordt is dus: -3.

Nu moet de snelheid veranderen na een aantal behaalde punten.

 

Sleep een “als…dan” blok uit “besturen” naar het herhaal blok en plaats dit onderaan binnen het herhaal blok. Plaats de functie “O = 50” uit “Functies” naar de plek tussen de woorden “als” en “dan”. Plaats in de plek O de variabele “score” uit “variabelen” en maak van het getal 50 een 6. In de lege regel onder “Als score = 6 dan” plaats je het blok: “maak snelheid > -5” uit “variabelen”.

 

Dit blok van de sprite Apple ziet er nu uit zoals je hiernaast ziet:

 

 

Het laatste blok kopieer je nu en maak voor score 12 en voor snelheid dan -8. Dit blok plaats je onder het eerste blok dat je net gemaakt hebt

 

Klik bij Variabelen op het v-teken in het blauwe vakje voor de variabele “snelheid”. Je ziet dan die variabele in het speelveld onzichtbaar is geworden.

Nu gaan we het aantal levens bijhouden.

We gaan nog een variabele maken.

Als de appel drie keer op de grond gevallen is, ben ik mijn levens kwijt. We maken een variabele met de naam “Levens”. Je doet dit op dezelfde manier zoals je de variabele “score” hebt gemaakt.

Je sleept het blokje “maak …… 0” uit “variabelen” naar het script dat wordt gebruikt bij het starten van het programma en zet het blokje onder het blokje “maak mijn snelheid 0”. Je verandert in het blokje “maak levens 0” het getal 0 in 3 omdat ik met 3 levens start.

Dan moet je het blokje “verander levens met 1” uit “variabelen” slepen naar de herhaal lus en plaats tussen het blok “als y positie < -170 dan” en “ga naar x: willekeurig getal tussen …..”. De appel is namelijk op de grond gekomen. We moeten nog wel even bij “verander levens met 1” de 1 veranderen in -1 want we verliezen een leven en krijgen er geen bij. 

De achtergrond wijzigen

We kiezen ook nog een andere achtergrond.
Natuurlijk kun je zelf kiezen wat je wilt maar een leuke lijkt me “desert”.

Klik rechts onderaan in de hoek op het pictogram voor achtergrond en klik dan op “kies een achtergrond”.

Zoek naar desert (of iets anders als je dat wilt) en laadt die achtergrond dan door er op te klikken

In het tabblad van achtergronden maak ik een kopie van deze achtergrond (dupiceren).

 

Zorg er dan voor dat de vulling de kleur rood heeft (of een andere kleur als je dat mooier vindt) en klik dan op de T om een tekst te kunnen maken. Maak dan de tekst “END OF THE GAME GAME OVER” . Dus Desert2 gebruiken we om als achtergrond te dienen als het spel is afgelopen.

De witte achtergrond heb je niet meer nodig en die kun je rustig verwijderen als je dat wilt. Klik op het prullenbakje.
Vanuit de achtergrond klik je nu op het tabblad “Code”.

Je komt dan in het script veld van de achtergrond.

Sleep het blokje: “Als er op de groene vlag wordt geklikt” uit gebeurtenissen, naar het scriptveld.
Sleep het blokje “verander achtergrond naar Desert2” uit “uiterlijken” naar dit script veld en plak dit blokje aan het blokje “Als er op de groene vlag wordt geklikt”. Klik op het driehoekje achter het woord “Desert2” en kies dan voor “Desert”. (Als “Desert” daar al staat kun je dat natuurlijk gewoon laten staan.

Bij de Crab moeten we ook het script nu wat aanpassen.
Klik op de sprite “Crab” (rechts onderaan) en het script veld van de Crab verschijnt.

Neem een blokje “Als…dan” uit “besturen” en plaats dat onderaan binnen het herhaal blok. (Dit wordt nu de 3e Als…dan constructie binnen dit herhaal blok.)

Neem nu het blokje “0 = 50 “ uit “Functies” en plaats dit blokje op de plek tussen de woorden “Als” en “dan” .
Plaats op de O de variabele “levens” en maak van 50: 0. Er staat dan in die regel: “Als levens = 0 dan” .

Neem nu het blokje “verander achtergrond naar desert2” uit “uiterlijken” en plaats dat in de lege regel in dat “Als…dan” blok.

Het script van de crab ziet er nu uit zoals je hiernaast ziet:

We gaan het spel nog wat moeilijker maken.

Klik op de sprite: “Apple” en je komt dan ook in het scriptveld van “Apple”.

We gaan ervoor zorgen dat als de crab 20 appels heeft gevangen er 2 appels komen waardoor het spel moeilijker wordt.
Zet een nieuw “Als…dan” blikje uit “besturen” onderaan binnen het “herhaal” blok. Neem nu het blokje “0 = 50 “ uit “Functies” en plaats dit blokje op de plek tussen de woorden “Als” en “dan” . Zet op de plaats van de O de functie “score” en verander 50 in: 20. Er staat nu: “Als score = 20 dan” .


Plaats in de lege regel het blokje “zend signaal bericht1” uit “gebeurtenissen”.

Klik op het driehoekje achter “bericht1” en klik dan in het venstertje dat verschijn, op “Nieuw bericht”. Dan verschijnt er een nieuw venster en geef het nieuwe bericht de naam: “nieuwe appel”.

Er moet dus een nieuwe (2e) appel komen.
Die maken we.

Ga naar het sprite-venster en klik daar met de rechter muisknop op de sprite “Apple” Klik daarna op het woord “dupliceren” en de sprite “Apple2” is gemaakt

 


Klik op Apple 2 en ga naar het Sriptvenster van Apple2. (Dit is mee gekopieerd en hetzelfde als het scriptvenster van Apple).

Sleep het scoreblok
(Blok waarin de blokken “maak scores”, “maak levens”, “maak snelheid” en “ga naar x willekeurig getal tussen -220 en 220 y 180”)
naar links, naar het tabblad “Code” en laat dan daar de linker muisknop los.

Dit hele blok zal verdwijnen.

Haal zo ook uit het scriptveld van Apple2 de drie onderste “als…den” blokken weg uit het grote herhaal-blok.

Het hele scriptveld van Apple2 ziet er dan nu zo uit:

Nu moet dit script van Apple2 NIET uitgevoerd worden als op de groene vlag wordt gedrukt, maar als het signaal “nieuwe appel” wordt gegeven. We halen dus het bovenst blok “wanneer op de groene vlag wordt geklikt” weg.

Neem het blok “wanneer ik signaal nieuwe appel krijg” uit “Gebeurtenissen” en plaats dat bovenaan.

Als je nu in het spel op de groene vlag druk dan zie je Apple2 ook. Maar dat is nog niet de bedoeling. Je moet dus, als het spel begint, de tweede appel even laten verdwijnen. Dat doe je zo:

Neem het blokje: “Wanneer op de groene vlag wordt geklikt” uit “Gebeurtenissen” en plaats dat ergens in het scriptveld van Apple2.
Neem dan het blokje “verdwijn” uit “Uiterlijken” en plaats dat onder het blokje “wanneer op de groene vlag wordt geklik”. Nu zal de tweede appel niet te zien zijn als het spel wordt gestart.

Maar wanneer het signaal “Nieuwe appel” wordt ontvangen, moet de tweede appel dus wel verschijnen. Plaats daarom het blokje : “verschijn” meteen onder het blok “wanneer ik signaal nieuwe appel ontvang” en boven het herhaal blok.

Als je nu het spel speelt, zal er na het behalen van de score: 20, er twee appels tegelijk omlaag komen.

 

 

Maar als je jouw 3 levens hebt opgebruikt, krijg je wel mooi de tweede achtergrond met de tekst te zien, maar gaat het spel gewoon verder. We moeten er nu dus nog voor zorgen dat het spel dan zelf stopt.

Daarvoor gaan we naar de sprite “Crab”.
Neem een “Stop Alle blokje uit “Besturen” en plaats dat onderaan in het blokje waar staat: “Als leven = 0 “ .

Het script van de Crab ziet er nu uit zoals je hiernaast ziet:

Het script van Apple ziet en nu zo uit:

De sprite van Apple2 ziet er nu zo uit:

En de sprite van desert ziet er nu zo uit:

Als dit allemaal goed gelukt is ben je klaar en kun je verder. Misschien al één van de opdrachten?

Succes.

Klik op deze tekst als je dit programma wilt zien, als het helemaal klaar is.

Maar…….probeer eerst zelf zover te komen dat alles werkt.
Niet te snel opgeven!!

.