![]() |
Pagina 7 van 13
Vijanden en bewapening
Maar wat is een scrolling shooter als je niet kan schieten en als er geen vijanden zijn? We zullen nu de game uitbreiden met een aantal vijandelijke vliegtuigen en een kanon op je vliegtuig waarmee je kan schieten.
We gaan starten met het kanon. We hebben een kogel sprite nodig. We zetten z'n oorsprong ('origin') in het midden zoals we ook voor het vliegtuig hebben gedaan. Om het iets spectaculairder te maken gebruiken we een vrij grote kogel. Dingen overdrijven is vaak belangrijk in spellen. ![]() We maken een object met deze sprite. We zullen het een standaarddiepte (depth) van 0 geven zodat het onder het vliegtuig maar boven de eilanden zal zijn. Het object gedraagt zich vrij simpel, in het create event geven we het een verticale snelheid van -8 zodat het naar boven beweegt. Om te voorkomen dat meer en meer kogels rond blijven vliegen moeten we de kogels verwijderen zodra ze de room verlaten. Dit kan makkelijk gedaan worden. In het step event controleren we of de variabele x kleiner is dan -16. Je zou nu moeten weten hoe dat moet. Als dat zo is verwijderen we het object door middel van de juiste actie. (Je zou ook het Outside room event gebruiken dat gevonden kan worden onder 'Other events'.) De kogel zou afgevuurd moeten worden wanneer de speler de spatiebalk indrukt. Zoals bij de meeste shooters moet het vliegtuig blijven schieten zolang de toets ingedrukt wordt. Maar we willen niet te veel kogels op hetzelfde moment. Dat zou het spel te makkelijk maken. We staan de speler alleen toe om twee kogels per seconde af te vuren. Dat is dus een kogel per 15 steps. Om dit te doen gebruiken we een variabele can_shoot (kan_schieten) zoals eerder al genoemd. In het create event van ons vliegtuig zetten we deze variabele op 1, wat aangeeft dat we een kogel kunnen afvuren. In het event van de spatiebalk controleren we of de variabele can_shoot gelijk is aan 1. Als dat zo is maken we een kogel net voor het vliegtuig, relatieve positie (0,-16). Ook zetten we de variabele can_shoot op 0 zodat we niet langer kunnen schieten. Ook zetten we alarm0 op 15. Onthoud dat het alarm terug naar 0 tikt iedere step. Als het alarm 0 bereikt zal het event worden uitgevoerd. In dit event zetten we de variabele can_shoot terug op 1, zodat we weer kunnen schieten. Het event van de spatiebalk moet er nu ongeveer zo uit zien: ![]()
Je kunt zelf de snelheid van het schieten van de kogels aanpassen door de tijd van de alarmklok te veranderen. (In sommige spellen kun je sneller schieten als je maar zo vaak mogelijk op de spatiebalk drukt. Dit kan worden bereikt door het 'key pressed' spatiebalk event te gebruiken in plaats van een 'keyboard' event, en de controle op can_shoot achterwege te laten).
We gaan nu de eerste vijand maken. Het is een klein vliegtuig dat simpelweg naar onder vliegt. Het schiet niet, maar als het ons vliegtuig raakt heb je verloren. Ook hier maken we een sprite aan voor het vijandelijke vliegtuig en een object. In het create event zetten we de verticale snelheid op 4 zodat het vliegtuig naar onderen vliegt. Als het vliegtuig de onderkant van de room bereikt laten we het weer opnieuw verschijnen aan de bovenkant van de rooms, precies zoals we ook gedaan hebben bij de eilanden. Je zou nu moeten weten hoe dit moet. |