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

Hoofdstuk 4. Gamemaker: Het spel uit H1 t/m H3 in het kort

  1. Zet de sprites blauwebal (ball_blue.gif in de map Maze), rodebal (ball_red.gif in de map Maze), muur (wall.gif in de map Maze) en shovel (shovel.gif in de map Maze) klaar.
  2. Voeg het geluid boink toe (boink1.wav in de map Sounds)
  3. Voeg het object muur toe, de bijbehorende sprite is ook muur. Zet een vinkje voor Solid.
  4. Voeg het object blauwebal toe, de bijbehorende sprite is ook blauwebal. Zet geen vinkje voor Solid.
    Voeg bij dat object de volgende events toe:
    1. Create: action Move(rood), in de diagonale richtingen, speed 5
    2. Collision, bij botsing met muur: bounce (tabblad Move)
    3. Mouse, left button: Sound (tabblad Main1)vul in: boink, actionà score (tabblad Score): new score 1 relative, move in de diagonale richtingen, speed 5
  5. Maak nu de ruimte waarin het spel wordt gespeeld: add room
    1. Settings: SnapX=24, SnapY=24 (dan worden de cellen 24 bij 24, de sprite muur is ook 24 bij 24)
    2. Width=480, Height=360
    3. Caption=ballenspel
    4. Speed 30 (dus steps=30)
  6. Bouw met de objecten muur de wanden, zet twee blauwe ballen in de room, kies een achtergrondkleur uit, en zet een vinkje voor Draw background color.
  7. Sla het op, en speel het spel.
  8. Voeg het object shovel toe, de bijbehorende sprite is ook shovel. Zet geen vinkje voor Solid.
    Voeg bij dat object de volgende events toe:
    1. KeyPress, left: move in linker richting, speed 4
    2. KeyPress, right: move in rechter richting, speed 4
    3. Collision, bij botsing met muur: move met speed 0, richting: middelste blokje
  9. Voeg het object rodebal toe, de bijbehorende sprite is ook rodebal. Zet geen vinkje voor Solid.
    Voeg bij dat object de volgende events toe:
    1. Create: action Move(blauw), direction: 45 + random(90), speed 4
    2. Collision, bij botsing met muur: bounce (tabblad Move)
    3. Collision, bij botsing met shovel: bounce, actionà score: new score -1 relative, actionà vraag-icoontje (tabblad Control), expression=score<0, actionà startblok, actionà score: new score 0 not relative , actionà endblok, actionà jump_to_the_start_position, actionà move in direction: 45 + random(90), speed 4
  10. Vergroot de sprite shovel:
    1. Dubbelklik in het linker venster op shovel, onder sprites. Kies edit sprite.
    2. Klik op Transform à Resize Canvas.Wijzig 100 % in 200 %
    3. Klik nog eens op Transform à Scale. Wijzig ook in dit venster 100% in 200%
  11. Pas de room aan: plaats de tussenmuur, zet de shovel en de rode bal rechts van de tussenmuur.
Na twee minuten stoppen invoeren:
  1. Voeg een nieuw object toe: tijdcontrole, bijbehorende sprite <nosprite>, geen vinkje voor Visible en ook geen vinkje voor Solid
  2. Voeg de volgende Events toe:
    1. Create: wekker (tabblad Main2) Alarm0, number of steps=3600 (120x30)
    2. Alarm: alarm0, actionà info-icoontje (tabblad Main2), Display a message: De twee minuten zijn om#Het spel is afgelopen ! , actionà Show_highscore (tabblad score), actionà Stoppen ((tabblad Main2)
  3. Dit object moet je ook nog in de room plaatsen !
Informatiescherm maken:
  1. Klik in het linker venster op Game information. Voer het volgende in:
    Je moet proberen met de muis te klikken op een blauwe bal.
    Elke keer als je dat lukt krijg je een punt erbij.
    Je moet proberen ervoor te zorgen dat de rode bal niet tegen de shovel botst.
    Want elke keer als dat gebeurt gaat er een punt af.
    Je kunt de shovel naar links en rechts bewegen door op de pijl naar links of rechts te drukken.
    Na twee minuten is het spel afgelopen.

    Je naam
  2. Dit scherm kun je oproepen door op F1 te drukken, het verdwijnt door een druk op Esc. Je kunt op de volgende manier er voor zorgen dat het bij de start verschijnt:
    1. Koppel het aan een create-event, bijv. bij die van tijdcontrole.
    2. Kies daar Create uit, klik op het info-icoontje (tabblad Main2)
Schieten.
We breiden het spel uit. Er kan een bom worden gegooid door een monster. Die bom wordt gegooid als je op de spatiebalk drukt.
En als die bom de rode bal raakt dan komt er een explosie en de rode bal verdwijnt. Maar twee seconden later komt er een nieuwe rode bal. Verder willen we dat er niet constant geschoten kan worden. Er mag maar één bom tegelijk in het speelveld aan wezig zijn. Zodra de bom tegen de muur of tegen de rode bal gebotst is kan er opnieuw geschoten worden, maar niet eerder.
  1. Voeg de sprites monster (monster1.gif in de map Breakout), bom (bomb01.gif in de map Maze), en explosie (explode1.gif in de map Various) toe.
  2. Voeg ook de bijbehorende objecten toe.
  3. Bij het object monster voeg je de volgende events en actions toe:
    1. KeyPress, Space: Icoontje 123 (tabblad Control), vul in:
      object=bom, number=0, operation=Equal to,
      actionà Startblok, actionà Create an instance (tabblad main1), vul in:
      object=bom, x=monster.x, y=monster.y, speed=4, direction=180, actionà Endblok.
  4. Bij het object bom voeg je de volgende events en actions toe:
    1. Create: Move, richting=naar links, speed=4
    2. Collision, met muur: Destroy the instance (tabblad Main1), self
    3. Collision, met rodebal: score 1 hoger, actionà destroy the instance (self), actionà change_the_instance (tabblad Main1), vul in: Applies to=other (de andere dus de rodebal) , change into=explosie, perform events=not, actionà wekker, vul in: number of steps=30, Alarm2
    4. Alarm, alarm2: Destroy an instance, vul in: object=explosie, actionà wekker (tabblad Main2), vul in: number of steps=60, Alarm3
    5. Alarm, alarm3: Create an instance (tabblad Main1), vul in: object=rodebal, x=350, y=300, speed=4, direction=45+random(90)
  5. Zorg er voor dat er een extra blauwe bal wordt toegevoegd als de speler 5 punten heeft behaald (zie par. 3.5)
  6. Na een halve minuut de snelheid van de blauwe ballen verhogen met 2:
    Bij het object tijdcontrole voeg je het volgende Event en de volgende actions toe:
    1. Create, Wekker (main2), vul in: number of steps=900, Alarm1
    2. Alarm, Alarm1, action à Code (tabblad Control), tik het volgende script in:
      { blauwebal.speed = blauwebal.speed + 2; }
    3. Verander ook nog bij het object blauwebal onder het event LeftButton de action Move: als speed staat er 5, verander dat in: speed=blauwebal.speed
  7. Verander de snelheid bij elke step (dus 30 keer per sec) met 0,02 % (zie par. 3.4)
  8. Zorg er voor dat, als er meer dan vijf botsingen met de shovel zijn geweest, er per botsing twee punten worden afgetrokken (zie par. 3.5)
    Dat doe je door de volgende code in te voeren bij de botsing met de shovel:
    {
          global.gebotst = global.gebotst + 1;
          if (global.gebotst>5) { score = score - 2; } else { score = score - 1; }
    }

  9. Zorg er voor dat als de speler 10 punten heeft behaald er naar een tweede level wordt gesprongen. (zie par. 3.6)
  10. Sla het spel op, en maak er een exe-file van.