![]() |
Pagina 2 van 13
Variabelen
Voor we het scrolling shooter spel kunnen maken moeten we iets meer in een belangrijk aspect van Game Maker duiken: het gebruik van variabelen. Dit simpele concept zal een erg kractig mechanisme zijn om meer interresante gameplay mogelijk te maken. Dus wat is een variabele? Het kan het best gezien worden als een eigenschap van een object of instantie (Engels: instance).
Zoals je zou moeten weten, er zijn een aantal eigenschappen die we aan kunnen geven om een object te definiëren. Bijvoorbeeld kunenn we instellen of het zichtbaar is en of het solide (solid) is. Er zijn ook een aantal acties die bepaalde eigenschappen wijzigen. Bijvoorbeeld is er een actie om de positie of snelheid van de instantie (instance) te wijzigen. Elke instantie heeft een aantal van die eigenschappen en er zijn ook een aantal globale eigenschappen van het spel, zoals de score, die niet gerelateerd zijn tot individuele instanties. Alle eigenschappen worden opgeslagen in zogenaamde variabelen. Hier is een deel van alle eigenschappen/variabelen die een instantie heeft: x: het x-coördinaat van de instantie y: het y-coördinaat van de instantie hspeed: horizontale snelheid (in pixels per stap (ookwel frame of step)) vspeed: verticale snelheid (in pixels per stap) direction: huidige richting van de beweging in graden, 0 is naar rechts, en loopt op tegen de klok in tot 360 graden weer naar rechts is speed: de huidige snelheid in deze richting visible: of het object zichtbaar is (1, of true (betekent 'waar') of onzichtbaar (0, of false (onwaar)) solid: of het object solide is (1, of true) or niet (0, of false)
En dit is een deel van de globale variabelen:
score: de huidige score lives: het huidige aantal levens health: de huidige 'gezondheid' (staat standaard op 100) mouse_x: het x-coördinaat van de muis mouse_y: het y-coördinaat van de muis room_speed: huidige snelheid (beelden per seconde, FPS) van de room in stappen (steps) per seconde room_caption: tekst (kopje) weergegeven in de titelbalk room_width: breedte van de room in pixels room_height: hoogte van de room in pixels Er zijn veel, veel meer variabelen, zowel lokaal voor de instanties, en globaal. Je kunt ze allemaal vinden in de Game Maker documentatie. Er zijn acties die de waarden van variabelen manipuleren (beïnvloeden, wijzigen) maar, zoals je zult zien, kun je ze ook zelf direct aanpassen zonder tussenkomst van een bepaalde actie. Beter nog, je kunt zelfs eigen variabelen aanmaken en gebruiken. Bijvoorbeeld, zoals je verderop zult zien, we willen dat ons ruimteschip slechts om de 5 stappen (ofwel steps/frames/beelden) kan schieten. Dus ons ruimteschip heeft een eigenschap nodig waarin staat of hij kan schieten. We gebruiken een variabele voor deze eigenschap die we can_shoot (kan_schieten) noemen. (Een variabelenaam kan alleen letters en een laag streepje (_) bevatten. Variabelenamen zijn hoofdlettergevoelig, dus Can_Shoot is niet hetzelfde als can_shoot.) In het 'create' event (gebeurtenis) van dit ruimteschip zetten we deze variabele op 1 (we gebruiken altijd 1 om true of 'waar' aan te geven). Als de speler een schot wil lossen controleren we eerst deze variabele om te zien of dat wel is toegestaan. Wanneer een schot afgevuurd is zetten we de variabele tijdelijk op 0 (wat aangeeft dat schieten tijdelijk niet mag). Daarna gebruiken we een alarm event om de variabele weer terug op 1 te zetten na 5 stappen. Hieronder beschrijven we het met meer details. Op eenzelfde manier kunnen we variabelen gebruiken om aan te geven of het ruimteschip een actief schild heeft, of het een speciale wapensupgrade heeft, enz. |