![]() |
Pagina 8 van 13
Vijanden en bewapening
We moeten twee belangrijke collision events voor het vijandelijke vliegtuig definiëren: het collision event met de kogel, welke het vijandelijke vliegtuig zou moeten verwijderen, en het collision event met ons vliegtuig welke ons vliegtuig zou moeten vernietigen en de game zou moeten beëindigen.
We starten met het collision event met de kogel. Een aantal acties zijn hier vereist. Maar ten eerste hebben we het geluid voor een kleine explosie en een sprite die de explosie aangeeft nodig. Om een geluid te maken, klik Add sound (geluid toevoegen) en laad wat goede explosiegeluiden (zie de Sounds map in Game Maker's map voor voorbeeldgeluiden). Voor de explisie hebben we een kleine sprite nodig. Zoals voor het vijandelijke vliegtuig zetten we de origin (oorsprong) op (16,16). We maken ook een explosieobject en geven het een explosiesprite. Het doet niks behalve dat wanneer de explosie animatie afgespeeld is het zichzelf moet verwijderen. Er is hier een event genaamd Animation end voor onder other events. Wanneer het geluid en het explosieobject klaar zijn kunnen we het collision event voor het vijandelijke vliegtuig met de kogel vullen. Allereerst spelen we het explosiegeluid. Daarna vernietigen we de kogel. Gebruik hiervoor de actie om een object te verwijderen maar, bovenaan, geef aan dat het voor het Other (andere) object geldt, welke in dit geval de kogel is. Vervolgens maken we het explosie object, relatief op positie (0,0), dat is, op dezelfde plek als het vijandelijke vliegtuig. We verwijderen niet het vijandelijke vliegtuig! In plaats daarvan verplaatsen we het naar een willekeurige positie boven de room zodat het lijkt alsof een nieuw vijandelijk vliegtuig eraan komt. Tot slot zetten we de score relatief op 5. We moeten relatief aan geven omdat we 5 punten bij de huidige score willen tellen; we willen de score niet op 5 zetten. Het event zou er zo uit moeten zien: ![]()
Vervolgens moeten we collision events afhandelen door ons vliegtuig. Opnieuw moet er een explosie sprite gemaakt worden (iets groter deze keer) en een explosie geluid (iets luider deze keer). We voegen het geluid toe aan de game en maken de sprite voor de explosie. Opnieuw maken we een explosie object ervoor, maar dit object is wat uitgebreider dan het andere explosieobject omdat het ook het einde van het spel af zal handelen.
In het Animation end event doen we een aantal dingen. Eerst verwijderen we de instantie om het onzichtbaar te maken. Daarna doen we een tijdje niks om er zeker van te zijn dat het explosiegeluid afgelopen is. De volgende actie toont de highscore lijst, op een manier dat de speler zijn of haar naam kan typen wanneer een highscore bereikt is. Dit gaat allemaal automatisch in Game Maker. Je kunt wel aangeven hoe de highscore tabel eruit moet zien. Je kan een mooie achtergrondafbeelding kiezen, het lettertype kiezen, enz. Je zou hier wat mee moeten experimenteren. Tot slot herstarten we het spel. ![]()
In het collision event van het vijandelijke vliegtuig en het hoofdvliegtuig, veranderen we ons vliegtuig, dat is, de other instantie, naar een explosie. Ook spelen we het explosiegeluid af en vernietigen we het vijandelijke vliegtuig.
Wat overblijft is om vijandelijke vliegtuigen in de room te plaatsen, maar dit gaan we iets anders doen. Een goed spel wordt moeilijker de hele tijd. Dus we willen starten met slechts 1 vijandelijk vliegtuig en er meer krijgen na een tijdje. Om dit te doen maken we een nieuw object, welke we controller_enemy zullen noemen. Het zal de vijandelijke vliegtuigen beheren. We maken het object onzichtbaar gedurende het spel door het vinkje bij Visible (zichtbaar) weg te halen. Een sprite ervoor is niet nodig.
In eht create event maken we een vijandelijk vliegtuig op een willekeurige locatie net boven de room. Dit zal de eerste vijand zijn. We stellen de alarmklok in op 200. In het event van dit alarm maken we een tweede vijandelijk vliegtuig en stellen we hetzelfde alarm opnieuw in, maar dit keer zetten we de tijd op 500. Dat is alles. Het effect is dat aan het begin van het spel er maar 1 vijandelijk vliegtuig is. Na 200 steps, dat is, ongeveer zeven seconden, verschijnt een vijandelijk vliegtuig. Na ongeverer 15 seconden, een derde vliegtuig verschijnt, enz. (De reden dat we het tweede vliegtuig sneller laten verschijnen dan het eerste is omdat de game met maar 1 vijandelijk vliegtuig te saai is.) Plaats een instantie van het controller object in de room en we zijn klaar. Hiermee is de tweede versie van 1945 af. We hebben een speelbare game met een vijand. |