Game Maker - Fase 2 - Opdracht les 3

Enemies!



We hebben al gevaren ingebouwd, maar nog geen "levende" gevaren.
Dat gaan we in deze oefening doen!
Voor de oefening maak je een room, waarin een vijand heen en weer loopt, tussen 2 obstakels. Deze vijand heet Goomba. Zodra de speler de vijand aanraakt, is hij zijn punten kwijt en begint de room op nieuw.



1 Opstarten
1.1) Open het programma Game Maker
1.2) Open het project waarmee je de afgelopen 2 weken de oefeningen hebt gedaan

2 Sprite aanmaken
2.1) Download dit zip bestand en open het zodat de map met de twee afbeeldingsbestanden (goomba_01.gif en goomba_02.gif) zichtbaar zijn.
2.2) Maak een nieuwe sprite aan en noem deze "spr_goomba"
2.3) Laad nu de twee afbeeldingen (goomba_01.gif en goomba_02.gif) in zodat de sprite een animatie van 2 frames wordt
TIP: Kijk bij de oefening van vorige week "Opdr.2) Muntje maken" hoe je dit ook al weer deed.

3 Object aanmaken
3.1) Maak een nieuw object aan en geef hem de naam: "obj_goomba"
3.2) Gebruik voor dit object de sprite die je zojuist hebt aangemaakt.

4) Room aanmaken of uitbreiden
4.1) Maak een nieuwe room aan OF gebruik een bestaande room waarin je het zojuist aangemaakte object plaatst tussen twee obstakels waarin deze heen en weer zal lopen.
Bijvoorbeeld als dit:
4.2) Zorg dus dat de score in beeld is, er muntjes te pakken zijn, de speler aanwezig is en de vijand die heen en weer moet lopen tussen twee obstakels, boven de grond hangt (zodat deze eerst naar beneden moet vallen om te kunnen lopen)

5) De animatie snelheid aanpassen van "obj_goomba"
5.1) Open het object "obj_goomba"
5.2) Voeg het event Create toe
5.3) Voeg aan de event de actie Change sprite (tab: main1) toe, selecteer daarbij de sprite "spr_goomba" en zet de speed op 0.1
5.4) Test de werking. Als het goed is moet de animatie niet te snel gaan, maar blijft Goomba nog in de lucht hangen (als je hem boven de grond hebt geplaatst)

6) Zwaarte kracht
6.1) Open het object "obj_goomba"
6.2) Voeg het event Sep -> Begin step toe
6.3) Voeg aan het Begin step event de action: Set Gravity (tab move) toe, pas hierbij de volgende instellingen toe:
    - direction: 270 (dat is recht naar beneden in game maker)
    - gravity: 1
6.4) Test de werking. Als het goed is zal Goomba naar beneden uit het scherm vallen en blijft die voor zo lang de room actief is doorvallen. Dit kost extra rekenkracht, daarom is het beter om hem te verwijderen zodra die uit beeld is.

7) Zorg er voor dat obj_goomba verwijderd wordt zodra deze buiten de room verdwijnt
7.1) Open het object "obj_goomba"
7.2) Voeg het event Other -> Outside room toe
7.3) Voeg aan het Outside room event de action: Destroy instance toe, selecteer daarbij self

8) Zorg er voor dat obj_goomba op de grond kan staan
Dit is al eens ingesteld bij de speler, dus dat gaan we kopiĆ«ren. Zie voor een duidelijke instructie de volgende video: http://youtu.be/saG2ilDyT88 de stappen zijn ook hieronder uitgeschreven:
8.1) Open het object "obj_spelerFal" en selecteer het event: collission with obj_grond
8.2) Selecteer daaruit de bovenste 4 actions, klik met de rechter muisknop op de selectie en kies copy
8.3) Sluit het object en open het object "obj_goomba"
8.4) Voeg het event collision toe en selecteer daarbij obj_grond
8.5) Klik met de rechter muisknop in het actions gedeelte en kies paste (plakken)
8.6) Test de werking.
De 4 actions die je zojuist hebt zorgen er voor dat het object na een collition 1 pixel terug wordt gezet, zodat hij niet "vast" komt te zitten in het andere object.

9) Zorg er voor dat obj_goomba heen en weer loopt tussen de obstakels
We willen er voor zorgen dat Goomba een richting op gaat lopen en wanneer hij een obstakel aanraakt, de andere richting op gaat lopen.
Hiervoor gebruiken we het collision met obj_grond event. Zodra een obstakel wordt geraakt, moet er gekeken worden aan welke kant staat dit obstakel. Staat deze links: dan moet hij naar rechts gaan lopen en andersom natuurlijk.
In de volgende video wordt uitgelegd hoe je dit in Game Maker kan doen:
http://youtu.be/mZgY-jiLqR0


10) Zorg er voor dat wanneer de speler Goomba aanraakt, de score op 0 wordt gezet en de room wordt gereset
Dit heb je in de oefening van vorige week ook al gedaan met het lava object. Probeer met die informatie het ook voor obj_goomba in te stellen.