Informaticasite van het Sondervick College te Veldhoven                 © L.J.M van Haperen (bron : R.J. van der Beek)
 

Hoofdstuk 1. Gamemaker: De basis

  1.1. Begrippen

Met het programma Gamemaker kun je zelf spellen ontwerpen.
Je kunt het programma downloaden van de site van Mark Overmars van de universiteit van Utrecht

Bij het ontwerpen kom je een aantal begrippen tegen en die begrippen gaan we je eerst uitleggen.
Gamemaker is gemaakt door Mark Overmars, een nederlander, maar hij heeft alles in het engels geschreven. De begrippen bestaan daarom uit engelse woorden.

  • Spelletjes gemaakt met GameMaker spelen zich af in een room, dat is engels voor kamer.
  • In rooms zijn objecten geplaatst: muren, balkjes, bewegende ballen, monsters, auto's, enz.
  • Objecten worden voorgesteld door plaatjes, en die plaatjes worden sprites genoemd.
    Meestal heb je een aantal gelijke objecten, die worden door dezelfde sprite voorgesteld.
  • Er kan in het programma gereageerd worden op speciale gebeurtenissen.
    Als het rode balletje in de figuur hieronder tegen de shovel botst dan gebeurt er iets, en daar reageert het programma op. Als er iets speciaals gebeurt dan noem je dat een event (dat is engels voor gebeurtenis).
  • En de reaktie van het programma op zo'n event noem je een action. In onderstaande figuur is dat bijvoorbeeld het volgende: de rode bal gaat terug naar de beginpositie en er gaat een punt van de score af. Dat is de bijbehorende actie, action in het engels.
  • Je kunt er ook voor zorgen dat er een geluid wordt gehoord bij een bepaald event: je kunt een sound als action laten gebeuren.
  • Rooms kun je gebruiken voor verschillende levels in je spel, of om verschillende plaatsen aan te geven.
  • Rooms hebben een bepaalde background, dat is een kleur of een plaatje als achtergrond, om te zorgen dat het er een beetje leuk uitziet.
  • Er zijn een heleboel ingebouwde acties (actions) in het programma, maar je kunt er zelf ook nog dingen bij bedenken. Die moet je dan programmeren, en zo'n programma-stukje noem je een script.

  1.2. Voorbeeldspel

We gaan als voorbeeld een spelletje maken waarin het volgende gebeurt:
We hebben een room, waarvan de wanden bestaan uit muren (dat zijn ook objecten)
De kamer bestaat uit twee gedeelten.
In het linker gedeelte zijn twee blauwe ballen, die tussen de muren bewegen. Ze stuiteren van muur tot muur.
De speler moet proberen op de ballen te klikken. Elke keer als hij op een bal klikt krijgt hij er een punt bij.
In het rechter gedeelte is een rode bal, die ook tussen de muren heen en weer stuitert.



En in het rechter gedeelte is een shovel, die ook kan bewegen. Als de speler op de pijl naar rechts drukt gaat de shovel naar rechts, drukt hij op de pijl naar links dan gaat de shovel naar links. Als de shovel tegen de muur aan komt blijft hij staan.
Als de rode bal tegen de shovel botst klinkt er een geluid, en gaat er een punt van de score af.
Dus de speler moet de shovel zo bewegen dat hij de rode bal ontwijkt.
Verder is er in het rechter gedeelte een monster dat een bom kan afschieten.
Als de speler op de spatiebalk drukt wordt er geschoten. Als de bom tegen de muur aankomt verdwijnt hij. En als de bom de rode bal raakt volgt er een explosie, de speler krijgt er een punt bij, en de rode bal verdwijnt.
Maar na twee seconden verschijnt er weer een nieuwe rode bal.
En na twee minuten is het spel afgelopen.
We gaan nu uitleggen hoe je dit spelletje kunt maken.

  1.3. De sprites voor het spel klaarzetten

We gaan eerst aangeven hoe het spel er in de beginsitatie uitziet. Dat noem je de interface.

  1. Start het programma, klik op File, en dan op New. Dan kun je een nieuw spel maken.
  2. Klik op Add, en klik dan op Add Sprite (je kunt ook op op de werkbalk klikken)
    Onderstaand venster verschijnt.



    Als naam van de sprite staat er sprite0, verander dat in blauwebal.
    Klik dan op Load Sprite. Dan kun je een figuurtje uitkiezen, je krijgt alle figuren in een bepaalde map te zien.
    Waarschijnlijk ziet het er als volgt uit:



    Als de inhoud van een andere map verschijnt moet je even op het pijltje klikken, en dan de goede map uitkiezen.
    Dubbelklik dan op de map Maze.
    Dan verschijnt de inhoud van die map, een aantal verschillende figuren met o.a. ball_"#0000ff".gif. Klik daarop, en klik dan op openen.

    Dan ziet het vorige venster er als volgt uit:



    Klik dan op OK.

  3. Op dezelfde manier voeg je de sprite voor een rode bal toe.
    Dus: Klik op Add, en klik dan op Add Sprite
    Als naam voer je in: rodebal.
    Klik dan op Load Sprite en zorg er voor dat je de map Maze in beeld krijgt.
    Klik op ball_red.gif, en klik dan op Openen, en daarna op OK.

  4. Op dezelfde manier voeg je de sprite voor een muur toe.
    Voer als naam in: muur.
    Kies wall.gif uit de map Maze uit.

  5. Tenslotte voeg je de sprite voor een shovel toe.
    Voer als naam in: shovel.
    Kies shovel.gif uit de map Maze uit.

  6. We gaan ook een geluid toevoegen.
    Klik op Add, en klik dan op Add Sound
    Voer als naam in: boink
    Klik dan op Load Sound en zorg er voor dat je de inhoud van de map Sounds in beeld krijgt.
    Kies een geluid uit (bijv. boink1.wav), klik op Openen en probeer het uit door op play (driehoekje met de punt naar rechts) te klikken.
    Als je het niet mooi vindt klik je weer op Load Sound en kies je een ander geluid uit. Klik op OK als je tevreden bent met het geluid.


  1.4. De objecten voor het spel

Nu gaan we de objecten, die in het spel voorkomen, aanmaken.
Bij een object hoort een sprite, dat is de bijbehorende figuur. Maar bij het maken van een object kun je meer vastleggen, namelijk hoe de figuur beweegt, en wat er gebeurt bij botsingen met de figuur, enz.
We gaan beginnen met de muur.

  1. Klik op Add, en klik dan op Add Object
    Onderstaand venster verschijnt.



    Als naam van het object staat er object0, verander dat in muur.
    Nu moet je aangeven wat de bijbehorende sprite is, klik daarvoor op het icoontje achter sprite (zie de pijl in de figuur hierboven). Dan verschijnt er een pull-down menu, waarin je een sprite kunt uitkiezen. Kies muur uit.
    Zet verder nog een vinkje voor Solid (omdat een muur vlak is, dat heeft gevolgen voor botsingen).

    Met de rest van de icoontjes (in het midden en rechts van het venster) hebben we niets te maken omdat de muur niet beweegt, en als een bal tegen de muur botst verandert ook niets aan de muur).
    Klik dus op OK.

  2. Nu gaan we verder met de blauwe bal.

    Klik op Add, en klik dan op Add Object
    Als naam van het object voer je in: blauwebal.
    Dan voer je in wat de bijbehorende sprite is, klik weer op het icoontje achter sprite en kies blauwebal uit.
    Zet in dit geval geen vinkje voor Solid
    (dat moet alleen bij stilstaande dingen zoals een muur)

    Nu moeten we nog invoeren hoe de bal beweegt, en wat er bij botsingen enz. gebeurt.
    Dat leggen we uit in de volgende paragraaf, klik eerst op OK

  1.5. De events en actions.

Nu gaan we aangeven hoe de blauwe bal beweegt, en wat er bij botsingen gebeurt, enz.
Daarvoor moeten we eerst terug naar het object blauwebal.



  1. Dubbelklik in het linker gedeelte van het GameMaker-venster op blauwebal onder Objects, dan verschijnt het object-venster voor de blauwe bal weer.
    In het midden van dat venster klik je op Add Event

    Onderstaand venster verschijnt.



    Er verschijnt een venster met icoontjes voor de zogenaamde events. Dat zijn dus gebeurtenissen waar het programma op moet reageren.
    Klik op Create. Dan kun je aangeven wat er bij de start moet gebeuren, dus als de bal ontstaat, als hij wordt gecreëerd.
    Het EventSelector-venster verdwijnt, en het create-icoontje wordt nu in het middelste gedeelte van het object-venster geplaatst (het events-venster).

  2. Nu kunnen we aangeven wat er bij de start met de blauwe bal moet gebeuren.
    Bij de start moet de bal direkt gaan bewegen. In welke richting en met welke snelheid kun je aangeven m.b.v. een icoontje rechts, dat hoort bij het tabblad Move:

    Sleep dat icoontje naar het venster er links van (het actions-venster). Als je de muisknop loslaat verschijnt onderstaand venster.



    Door op één van de pijlen te klikken bepaal je in welke richting de bal gaat.
    Je mag ook op een aantal pijlen klikken, dan wordt er één van die richtingen uitgekozen, welke richting hangt van het toeval af.
    Klik op de vier diagonale richtingen. Dan vertrekt de bal in één van die richtingen, dus niet horizontaal en niet vertikaal.
    Achter speed (= snelheid) vul je 5 in.
    Klik dan op OK


  3. Nu gaan we aangeven wat er gebeurt als een blauwe bal tegen een muur botst.
    In het midden van het object-venster klik je op Add Event
    Het EventSelector-venster verschijnt, klik hierin op

    Er verschijnt een venstertje naast met alle objecten, klik op muur. Dan kun je aangeven wat er gebeurt als een blauwe bal tegen een muur botst.
    Het EventSelector-venster verdwijnt, en het collision-icoontje wordt nu in het middelste gedeelte van het object-venster geplaatst.

  4. Nu kun je aangeven wat er moet gebeuren als een blauwe bal tegen een muur botst.
    Wat gebeurt er als een bal tegen een muur komt ? De bal wordt teruggekaatst. Daar is een speciaal icoontje voor, dat hoort ook bij het tabblad Move:
    Sleep dat icoontje naar het venster er links van. Als je de muisknop loslaat verschijnt er een venster.
    In dat venster hoef je niets te veranderen, klik op OK

  5. Tenslotte gaan we aangeven wat er gebeurt als er op een blauwe bal geklikt wordt: dan klinkt er een geluid, de speler krijgt er een punt bij, en de bal gat een andere kant uit.
    In het midden van het object-venster klik je op Add Event
    Het EventSelector-venster verschijnt.
    Klik hierin op de muis (mouse)
    Als je er op klikt dan verschijnt er een pull-down menu. Kies daarin voor Left button.

    Dan kun je aangeven wat er moet gebeuren als er op de blauwe bal geklikt wordt.
    Klik rechts op het luidspreker-icoontje (onder Sounds) dat hoort bij het tabblad Main1.
    Sleep dat icoontje naar het venster er links van.
    Als je de muisknop loslaat verschijnt onderstaand venster.



    Klik in dat venster op het icoontje rechts van Sound, dan verschijnt er een pull-down menu. Kies daarin Boink uit. En klik dan op OK.

  6. Klik op het score-icoontje dat hoort bij het tabblad Score:
    Sleep dat icoontje naar het venster er links van.
    Als je de muisknop loslaat verschijnt onderstaand venster.



    In dat venster vul je achter new score een 1 in.
    En je zet een vinkje voor Relative.
    Dat heeft dan tot gevolg dat er één punt bij het puntentotaal wordt opgeteld. Klik dan op OK

  7. Klik dan nog op
    Sleep dat icoontje naar het venster er links van. Als nieuwe beweeg-richting klik je op de vier diagonale richtingen, dan zal de bal in één van die richtingen verder gaan.
    Als snelheid vul je maar weer 5 in. Klik dan op OK


  1.6. Een room maken.

Het laatste dat we moeten doen is een room maken, dat is de ruimte waarin het spel plaats vindt.
  1. Klik op Add, en klik dan op Add Room
    Onderstaand venster verschijnt.



    Klik op tabblad settings, vul bij SnapX 24 in, en bij SnapY ook 24.
    Dan worden de hokjes in de ruimte 24 bij 24, en dat is handig omdat de sprite muur ook 24 bij 24 is. Dan passen de stenen precies in de hokjes.
    Vul bij Width 480 in, en bij Height 360. Daarmee geef je aan hoe lang en hoe breed de ruimte is.
    Bij Caption for the room vul je in: ballenspel. Dat verschijnt dan in de titelbalk van het spel (Caption = opschrift)
    Bij Speed vul je 30 in. Dat betekent dat de tekening 30 keer per seconde ververst wordt, en dat wordt ook wel het aantal steps per seconde genoemd.

  2. Klik dan op het tabblad Objects. En klik op het icoontje voor een pull-down menu achter het vensterje voor het object (Object to add with left mouse staat er boven)
    In het pull-down menu, dat verschijnt, kies je muur uit.




    Dan kun je stukjes muur in de ruimte plaatsen.
    Klik op de hokjes aan de rand. Bij elke klik verschijnt een stukje muur in het hokje waarin je klikt.
    Als je met de rechter muisknop op een stukje muur klikt dan verdwijnt dat stukje weer.
    Bouw zo de muur helemaal rondom.

  3. Nu gaan we blauwe ballen in het spel brengen.
    Klik op het icoontje voor een pull-down menu achter het vensterje voor het object.
    In het pull-down menu, dat verschijnt, kies je blauwebal uit.

    Dan kun je blauwe ballen in de ruimte plaatsen. Klik ergens in de speel-ruimte: er verschijnt een blauwe bal op die plaats. Klik dan nog eens op een andere plaats, dan verschijnt er nog een blauwe bal.

  4. Klik nu op het tabblad Backgrounds.
    Dan kun je de achtergrondkleur instellen. Klik op het venstertje achter color.
    Dan verschijnt er een venster waar je de achtergrondkleur uit kunt kiezen. Kies een leuke kleur uit, en klik op OK.
    Zorg er voor dat er een vinkje staat voor Draw background color
    , anders wordt de achtergrondkleur toch niet aangebracht.
    De dingen die onder het kleurvenstertje staan zijn voor het instellen van een achtergrondplaatje. Daarover later, laat het nu ongewijzigd.

  5. Klik nu op het groene V-tje in de linker bovenhoek van het room-venster.
    Dan worden de ingevoerde room-gegevens vastgelegd, en het room-venster wordt afgesloten.

  1.7. Het spel op schijf bewaren, en spelen.

  1. Als je het gemaakte spel wilt opslaan dan klik je op File, en dan op Save as.
    Als bestandsnaam vul je bijv. ballenspel in.
    En achter Opslaan in kies je de map uit waarin je het spel wilt opslaan.

    De computer voegt automatisch de extensie gm6 toe, dus de naam van het bestand wordt dan ballenspel.gm6

  2. Het spel is nog niet helemaal klaar, maar je kunt wat je tot nu toe gemaakt hebt alvast uitproberen.
    Als je het spel wilt spelen klik je op het groene driehoekje in de werkbalk, of je klikt op Run en dan op Run normally.
    Je ziet dan dat de blauwe ballen gaan bewegen, en dat ze tegen de muren weerkaatsen.
    Elke keer als je op een bal klikt krijg je een punt. De score verschijnt automatisch in de titelbalk.
    Het spel stopt nog niet automatisch, dat regelen we later. Je kunt het spel zelf stopzetten door op Esc te drukken, of door op de sluitknop van het venster te klikken.

  3. Als je het spel op deze manier wilt spelen moet je eerst Gamemaker starten, dan kun je het spel inladen door te klikken op File, en dan op Open, en dan kun je het uitkiezen. Daarna kun je het starten.
    Je kunt het spel ook spelen zonder Gamemaker te starten. Dan moet je een uitvoerbaar bestand van het spel maken.
    Klik daarvoor op File, en dan op Create Executable.
    Dan kun je een bestandsnaam geven, bijv. ballenspel, en een map uitkiezen waarin het moet worden opgeslagen.

    De computer voegt in dit geval automatisch de extensie exe toe, dus de naam van het bestand wordt dan ballenspel.exe
    Als je daarna m.b.v. de Verkenner de map opzoekt en op ballenspel.exe dubbelklikt dan start het spel. Zelfs als Gamemaker niet eens op de computer staat !