Het ontwerpen van spellen met Game Maker
Move actions (bewegingsacties)
De eerste set van acties bestaat uit acties die met de beweging van objecten te maken hebben. De volgende acties bestaan:
Start moving in a direction
Gebruik deze actie om de instantie in een bepaalde richting te laten bewegen.
Je kunt de richting aangeven door gebruik te maken van de pijltjestoetsen.
Gebruik de middelste knop om een beweging te stoppen. Je moet ook de snelheid van beweging specificeren. Deze snelheid is gegeven in pixels per step. De default waarde is 8. Het verdient de voorkeur om geen negatieve waarden te gebruiken. Je kunt meerdere richtingen specificeren. In dit geval wordt random een keuze gemaakt. Op die manier kun je een monster bijv. zowel links als rechts laten bewegen.
Set direction and speed of motion
Een tweede manier om een beweging te specificeren met de blauwe pijlen.
Hier kun je een precieze beweging specificeren. Het betreft een hoek tussen 0 en 360 graden.
0 betekent naar rechts. De richting is tegen de wijzers van de klok in. Bijvoorbeeld; 90 betekent een opwaartse beweging. Wanneer je een willekeurige richting wilt, type je random(360).
Zoals je verderop zult zien, betekent random een random getal dat kleiner is dan de geïndiceerde waarde. Zoals je misschien hebt gezien bestaat er een checkbox met het label Relative draagt.
Wanneer je deze aanvinkt, wordt de nieuwe beweging toegevoegd aan de voorafgaande. Bijv. wanneer een instantie naar boven beweegt en je voegt een beetje beweging naar links toe, dan wordt de nieuwe beweging naar linksboven.
Move towards a point
Met deze actie kun je bewegingen op een andere manier specificeren. Je stelt een positie en een snelheid vast en de instantie begint in de richting van die positie en met die snelheid te bewegen.
(Het stopt niet bij die positie!) Bijvoorbeeld: wanneer je een kogel in de richting van de positie van een ruimteschip wilt laten vliegen, kun je een positie spaceship.x, spaceship.y gebruiken. Wanneer je de Relative box aanvinkt, kun je de positie specificeren die relatief is aan de huidige positie van de instantie. (De snelheid wordt niet relatief berekend!)
Set the horizontal speed
De snelheid van een instantie bestaat uit een horizontale en een verticale component. Met deze actie kun je de horizontale snelheid aanpassen. Als de horizontale snelheid positief is, betekent dat een beweging naar rechts, een negatieve horizontale snelheid betekent een snelheid naar links. Als deze snelheid wordt gewijzigd blijft de verticale snelheid gelijk. Maak gebruik van de optie relatief om de snelheid te verhogen of te verlagen.
Set the vertical speed
Op een gelijke manier kun je met deze manier de verticale snelheid van een instantie wijzigen.
Set the gravity
Met deze actie kun je graviditeit voor een bepaald object creëren Je specificeert een richting (hoek tussen 0 en 360 graden) en een snelheid en bij iedere stap wordt de grootte van de snelheid in een bepaalde richting, toegevoegd aan de huidige beweging van de objectinstantie.
Meestal heb je een hele kleine snelheidsverhoging nodig ( ca. 0.01)
Je zult bij deze actie meestal een neerwaartse beweging willen hebben (270 graden).
Wanneer je de Relative box aanvinkt, kun je de neerwaartse beweging (graviditeit) en richting vergroten. In tegenstelling tot de echte wereld, kan graviditeit in alle richtingen optreden.
Reverse horizontal direction
Met deze actie wordt de horizontale beweging van de instantie omgedraaid. Dit gebruik je bijv. wanneer een object tegen een verticale muur botst.
Reverse vertical direction
Met deze actie wordt de verticale beweging van de instantie omgedraaid. Dit kan bijv. worden gebruikt wanneer het object tegen een horizontale muur botst.
Set the friction
Frictions vertragen instanties wanneer zij bewegen. Je specificeert de grootte van de friction. Bij iedere stap wordt dit getal van de snelheid afgetrokken tot de snelheid uiteindelijk 0 wordt. Meestal gebruik je een heel klein getal (bijv. 0.01).
Jump to a given position
Bij gebruik van deze actie kun je de instantie in een bepaalde positie brengen.
Daartoe moet je de x- en y-coördinaten specificeren en vervolgens wordt de instantie neergezet op deze positie, vanuit zijn referentiepunt. Wanneer je Relative aanklikt, wordt de nieuwe positie relatief berekend t.o.v. de huidige positie van de instantie.
Deze actie wordt vaak gebruikt om instanties continu te laten bewegen. In elke step verhogen we de positie een beetje
Jump to the start position
Deze actie zet de instantie terug op de plaats waar hij is ontstaan.
Jump to a random position
Deze actie beweegt de instantie naar een random positie in de room. Er worden alleen posities gekozen, waarbij de instantie nergens een solide instantie doorsnijdt.
Je kunt deze specificeren. Wanneer je positieve waarden kiest, worden coördinaten gekozen die veelvouden van integers zijn van de geïndiceerde waarden. Dit kan gebruikt worden om de instantie uit te lijnen binnen de grenzen van je spel (als die er zijn). Je kunt horizontale en verticale waarden afzonderlijk invoeren.
Snap to grid
Met deze actie kun je de actie van een instantie binnen een rooster houden. Je kunt horizontale en verticale waarden meegeven (grootte van de cellen op het rooster). Op deze manier zorgen je ervoor dat instanties binnen het rooster blijven.
Move to contact position
Met deze actie kun je een instantie in een bepaalde richting laten bewegen totdat een positie is bereikt dat deze instantie een object heeft bereikt. Indien er een botsing optreedt op die positie blijft de instantie staan. Aan de andere kant blijft de instantie precies staan op de plek vlak voordat een botsing zou optreden. Je kunt met deze actie de precieze richting maar ook de maximale afstand van de beweging aangeven. Bijvoorbeeld, als een instantie naar beneden valt, kun je een maximale afstand instellen waarbinnen de instantie een object tegenkomt en kan botsen. Daarbij is het ook mogelijk om aan te geven of het alleen maar gaat om solid objects of alle typen objecten. Deze actie gebruik je dus als je er zeker van wil zijn dat de instantie stopt met bewegen als het in contact komt met een ander object dat bij de botsing betrokken is.
Bounce against objects
Wanneer deze actie wordt geplaatst in de collision event van een bepaald object, zal het object op een natuurlijke manier terugbotsen vanaf een muur. Wanneer je de parameter 'precise' op false zet, worden horizontale en verticale muren correct behandeld. Wanneer je deze parameter op true zet, worden ook scheve en gebogen muren correct behandeld. Echter deze gaan langzamer. Je kunt ook aangeven of je wilt laten stuiten van solide objecten of van alle objecten. Het stuiten kan nooit volledig correct zijn, omdat dit van vele eigenschappen afhankelijk is. In de meeste situaties is het effect echter goed genoeg.