Pagina 6 van 13
The Main Plane
Nu de scrollende achtergrond klaar is, is het tijd om het vliegtuig te maken die de speler gaat besturen. Dit is eigenlijk best makkelijk. Eerst hebben we een sprite voor het vliegtuig nodig, hiervoor gebruiken we een propellorvliegtuig. Om de propellors de illusie te geven dat ze draaien gebruiken we een sprite die 3 afbeeldingen heeft en welke exact hetzelfde zijn op de propellors na (deze afbeelding kan gevonden worden als myplane_strip3 in de daarvoor bestemde Tutorials map waar Game Maker geïnstalleerd is):

Deze geanimeerde sprites kunnen gevonden worden in bestanden die eindigen met _stropXX, waar XX het nummer van de subafbeelding aangeeft.

Zodra we een sprite maken doen we een belangrijk iets. We stellen de X en Y van de Origin (oorsprong) op 32. Dit betekent dat de origin van de sprite het middelpunt van het vliegtuig is. Dus als we later een vliegtuig maken op een bepaalde positie, of als we de positie testen, bedoelen we het middelpunt van het vliegtuig, niet het punt linksboven, wat standaard de origin is. Dit is belangrijk om goed in te stellen zodat bijvoorbeeld kogels van het middelpunt van het vliegtuig komen, niet uit de linkerbovenhoek.

Vervolgens voegen we het object obj_myplane toe. Als sprite kiezen we het vliegtuig dat we zojuist gemaakt hebben. We geven het een depth (diepte) van -100 zodat het over kogels enzo heen gaat (die we creëren we later). (Omgaan met de depth eigenschap op een effectieve manier is belangrijk voor veel spellen, dus zorg ervoor dat je dit snapt.) Op dit moment moeten we slechts de richting van het vliegtuig aangeven.

Als de speler niks doet, zal het vliegtuig niet bewegen. (Onthoud, de achtergrond beweegt, niet het vliegtuig.) Als de speler een van de vier pijltjestoetsen indrukt, zou het vliegtuig in de goede richting moeten vliegen. Het belangrijkste om aan te denken is dat we moeten voorkomen dat het vliegtuig buiten de room beweegt. Hiervoor zullen we de beweging zelf controleren, in plaats van dat we het vliegtuig een snelheid geven. Dit gaat als volgt.

We zullen kijken naar de beweging van de linkerpijltjestoets. Voeg het keyboard (toetsenbord) event toe voor de toets. We moeten eerst zeker weten dat we niet te ver van de linker kant af zijn. We gebruiken dus de actie om te checken of de x variabele groter is dan 40, vergelijkbaar met hoe we het y-coördinaat checkten van de eilanden. Als deze controle true teruggeeft willen we een kleine afstand naar links bewegen relatief ten op zichte van de huidige positie.

Hiervoor gebruiken we de "jump to a position" (spring/verplaats naar een positie) actie om relatief -4 pixels voor de x en 0 voor de y te bewegen. Vergeet niet om aan te vinken dat het relatief (relative) is. Voor de toets naar rechts doen we iets vergelijkbaars. We controleren of de x kleiner is dan room_width-40 en, als dat zo is, springen we relatief naar een positie met als x-positie 4 en y-positie 0 (ook hier relative niet vergeten). Zo ook voor de verticale beweging, maar dit keer bewegen we slechts met een snelheid van -2 en 2. (Onthoud, we moeten nooit sneller achterwaards bewegen dan dat de achtergrond scrollt.)

Vergeet ook niet dat een positief getal voor de y-as (een getal boven 0) naar onderen is. Dus om naar boven te bewegen moeten we 2 van de huidige y-positie afhalen. Aan de onderkant van het scherm houden we een grotere marge van 120 pixels. Dit wordt later gebruikt om een paneel met informatie weer te geven.

Ons vliegtuig kan nu vliegen. Plaats een instantie van het vliegtuig in de room en test het spel. Je zou een illusie moeten krijgen dat je over de zee vliegt.