Zoals vermeld in deel één werken we voor ‘t gemak zonder code, dus volledig met slepen en plakken. In de afbeelding waarmee het vorige deel eindigt, zie je slechts twee regels en we hebben nog een paar te gaan. De regels die nu in de event sheet staan laten de speler springen en wat rest is het laten verschijnen van de platformen. Zo lijkt het straks alsof de speler beweegt. Het platform moet naar links schuiven en de speler moet op z’n plek blijven wanneer platformen onder de speler door schuiven. Dit is wat we in dit deel gaan doen en we beginnen met nieuwe gedragingen voor de platformen. Die waren al Solid, ofwel vast, zodat de speler er niet doorheen zakt.

Wat je leert in dit deel lijkt oppervlakkig en beperkt maar er zitten een aantal leuke trucjes tussen die op tal van andere speltypes zijn toe te passen:

  -   het kiezen van de juiste graden/hoek met de hulp van een gradenboog;
  -   het wekken van de suggestie van beweging;
  -   het plakken van een object aan een ander object.

Als je zomaar in dit deel komt binnenvallen, dan raad ik aan de eerste stap in deel 1 door te nemen. Ook valt er veel te leren in de handleiding voor het maken van Pong.

Stap 2: Beweging in de platformen brengen

Allereerst klonen we het platform, zodat er twee van zijn. Klik in de layout met de rechtermuisknop op het platform en kies voor de optie Clone object type. Een kruisje verschijnt en je klikt nu gewoon ergens op het scherm om het object te maken. Heb je eerder de platformsprite een naam gegeven, dan verschijnt het nieuwe platform met dezelfde naam en een 2 erachter. Platform 2 dus. Zet dat nieuwe platform achter het oude platform en vergroot vooral even het beeld om het overzicht te houden. Met het scrollwieltje op je muis en Ctrl ingedrukt maak je het scherm groter en kleiner in Construct 2.

We hadden reeds het Solid-behavior gekoppeld aan de platformen, nu is het tijd om nieuwe gedragingen toe te voegen: Pin en Bullet. Je weet vast nog wel hoe dat gaat: klik het object, dan het blauwe linkje met Behaviors, vervolgens het plusje om een gedrag toe te voegen. Voeg het Bullet-gedrag toe aan beide platformen en ze schieten meteen weg wanneer je het spel test. Om dat te voorkomen, maken we een aantal aanpassingen. De belangrijkste hiervan is de richting van het ‘schot’. Met één regel laten we de platformen naar links in plaats van rechts schieten.

Kijk daarvoor even naar de gradenboog hieronder, want daarmee berekenen de meeste gamemakers de hoek. Wil je weten welke kant een object op moet gaan, dan leg je het object – in gedachten – in het midden van de gradenboog. Kijkend naar die gradenboog gebruiken we voor een beweging naar links dus 180 graden. Open de event sheet en voeg een event toe met de knop Add event. Kies dan System, On start of layout. Kies dan het platform en selecteer onder de opties bij het Bullet-gedrag Set angle of motion. Kies nu voor 180 graden. Doe hetzelfde voor platform 2 en de platformen schieten de juiste richting uit. Dat doen ze wel standaard met hoge snelheid, dus die zetten we een beetje naar beneden. Ga naar de layout, klik het platform aan en de eigenschappen verschijnen links. Klik op Speed onder het kopje Bullet en zet deze van 400 naar 250.

Test je nu het spel (met F5) dan zie je dat het niet helemaal goed gaat. Dit komt doordat de speler valt op een blok dat beweegt, waardoor de speler meelift naar links. Gelukkig is met een simpele regel de speler op de x-as te ‘plakken’, zodat wel de platformen maar niet de speler bewegen. Bovendien versterkt dit het gevoel dat de speler door een level beweegt. Voordat je de speler vastzet op de x-as, klik je in de layout en bekijk je wat de x-as van het blokje is. Klik hiervoor op het blokje en bekijk de waarden onder Position in de eigenschappen links van het scherm. De eerste waarde is de x-as, dus die onthouden we. Creëer nu een nieuw event in de event sheet en dubbelklik System. Kies nu het systeemevent Every tick, wat zoveel als ‘altijd’ betekent. De x-as moet altijd gelijk zijn als de waarde die je net onthield. Voeg een actie aan dit event toe, met het spelersblokje als onderwerp. Selecteer nu de actie Set X onder Size & Position en vul de waarde in die je in de layout bij de speler zag. Dat ziet er zo uit in de event sheet:

Gaten maken

Platformen laten verschijnen is niet moeilijk, maar het is nóg gemakkelijker om bestaande objecten opnieuw aan elkaar te klikken. Vandaar het Pin-gedrag dat we koppelen aan beide platformen, op dezelfde manier als het Solid- en Bulletgedrag. Doe dit op de gebruikelijke wijze: klik de platformen aan, klik op Behaviors gevolgd door het plusteken en kies nu het Pin-gedrag.

Dan iets nieuws: we maken een soort muur die platformen registreert, vergelijkbaar met muren uit de handleiding voor Pong. Deze muur is een trigger, ofwel een activering van acties. Maak een recht opstaande balk en plaats deze buiten de layout, in het blauwe deel van het scherm. Noem hem bijvoorbeeld ‘trigger’ zodat in het objectenoverzicht duidelijk is om welke sprite het gaat.

Dan het plakken van platform 2 aan platform 1, zodat ze naadloos na elkaar het scherm in glijden. Ga naar de event sheet en klik op Add event. Gebruik het eerste platform als beginobject en kies dan On collision with another object, gevolgd door de trigger in het selectiescherm dat volgt. Voeg een actie toe met platform 2 als object. Kies dan Pin to another object in de lijst van mogelijkheden en kies platform 1. De modus staat standaard op Position & angle, wat goed is. Nu zijn de platformen gekoppeld en gaan we platform 1 op een andere manier tegen platform 2 aanplakken, zodra deze de trigger aanraakt. Ook gaan we platform 1 een wisselende grote geven bij het plakken, zodat het lijkt alsof er gaten in de weg zitten. Dit gebeurt in slechts één regel, als volgt:

Maak een nieuw event aan vanuit platform 2. Kies voor On collision with another object en selecteer de trigger. Voeg nu een actie toe vanuit platform 1, met de functie Set position to. Dubbelklik dus platform 1, dan Set position to gevolgd door platform 2. Dit betekent dat platform 1 verschijnt naast platform 2 wanneer deze de trigger raakt. Tenslotte voegen we nog één actie toe, die erg belangrijk is. Klik weer op Add action, dan op platform 1, gevolgd door Set width to. Gezien de lengte van het platform (1280 pixels, zie deel 1) moet het gat dat ontstaat tussen platform 1 en 2 tussen de lengte van de speler en de mogelijke springafstand inzitten, wat neerkomt op een waarde tussen de 1000 en 1280. Je kunt spelen met deze waarden om te kijken hoe groot de gaten uiteindelijk worden.

Bij de waarde onder width gebruiken we een klein trucje dat spellen op gemakkelijke wijze uitdagender maakt: de random-functie. In plaats van een vaste waarde vullen we een bereik in. Gebruik je hier random (1000,1200), dan maakt Construct 2 platformen van tussen de 1000 en 1200 pixels, wat betekent dat een speler van 50 pixels breed dus 200 pixels heeft om ‘in te vallen’. Test je nu het spel met F5 dan springt de speler, rollen platformen oneindig onder de speler door en ontstaan gaten doordat de wijdte wisselt. Kijk vooral even in de event sheet in de afbeelding als je twijfels hebt. Het enige dat mist is een score en een melding bij een val in één van de gaten. Tot volgende week!

Volgende week: de score bijhouden, het spel versnellen en beëindigen