Deel 5: Munten en Punten Toevoegen
Inleiding
Met Deel 4 voltooid, zou je nu een level en een speelbaar personage moeten hebben om rond te rennen en te springen.
Nu moeten we onze speler een doel geven. Voor dit deel van de tutorial, zullen we verzamelbare munten en een score toevoegen om ze bij te houden.
Munten die verborgen zijn in blokken zijn een van Mario's meest iconische kenmerken. Laten we deze tutorial beginnen door die functie te creëren.
Munten verstoppen in Bakstenen
Het Baksteen Raak
We maken onze eerste baksteen zo dat we deze snel kunnen aanpassen om zoveel munten als we nodig hebben te bevatten. Zodra de baksteen compleet is, kun je deze dupliceren en overal plaatsen waar je wilt.
Deze tutorial bouwt voort op Deel 4, en gaat ervan uit dat je het Deel 4-project vanuit de hub hebt gekopieerd.
Begin met het selecteren van een van de bakstenen die munten zullen bevatten. Tik vanuit de objecteigenschappen op de knop "Gedragingen" om de gedragseditor te openen.
Voeg vanuit de Object categorie het Gecollisioneerd gedrag toe. Het Gecollisioneerd gedrag zal een gebeurtenis activeren elke keer dat 2 opgegeven objecten elkaar aanraken.
Tik op het Gecollisioneerd gedrag dat je hebt toegevoegd om de eigenschappen te bekijken. Je kunt zien dat het 2 vakken heeft voor selecteerbare objecten (verwezen als Object A, en Object B). De eerste (Object A) is geselecteerd voor jou, en dat is degene waarvoor je de gedragingen toepast. Je kunt tikken om dit te veranderen als je wilt, maar we laten het ongemoeid.
Het lege vak is voor je tweede object (Object B), waarmee het gecollisioneerde gedrag zal controleren. Tik op het lege vak en selecteer je speler personage dat je in Deel 4 van de gids hebt toegevoegd.
Met je objecten geselecteerd, kun je nu veranderen welk deel van Object B de gecollisioneerde gebeurtenis zal triggeren. Zet alle schakelaars uit, behalve de "Van Boven" optie. Nu zal het Gecollisioneerd gedrag alleen werken wanneer de bovenkant van het speler personage de baksteen aanraakt.
Nu de baksteen controleert of het hoofd van de speler het raakt, laten we deze op en neer laten stuiteren. Om dit te doen, zullen we het Beweeg Door gedrag gebruiken om het omhoog te bewegen en dan weer naar beneden.
Voeg vanuit de Transformeren categorie het Beweeg Door gedrag toe en verbind dit met het Gecollisioneerd gedrag dat je eerder hebt toegevoegd.
Tik op het Beweeg Door gedrag, en bekijk de eigenschappen. Aangezien we de baksteen omhoog willen bewegen wanneer de speler deze raakt, zullen we de Y Waarde veranderen. Stel deze in op een klein nummer, want we willen alleen een klein stuitereffect geven. Ik gebruikte 0.20 Meter.
Je moet ook de Duurtijd veranderen. De duur is de tijd die nodig is om de beweging te voltooien. Standaard is de duur ingesteld op 1, maar dit betekent dat de baksteen 0.2 meter over 1 seconde beweegt. Dit is veel te langzaam voor onze behoeften. Verander de duur naar 0.10 Seconden.
Opmerking: Als je de duur op nul instelt, zal je object onmiddellijk naar de nieuwe positie bewegen. Het zal niet soepel animeren. Let ook op het vak met de tekst "Lineair". Dit is het motion tween effect dat wordt toegepast op je beweging. Als je gedrag een duur heeft, zal het op basis van dit effect bewegen.
Om de baksteen weer naar beneden te laten stuiteren, voeg je nog een Beweeg Door gedrag toe, en verbind het met de vorige.
Verander opnieuw de eigenschappen. Dit keer willen we dat de baksteen weer naar beneden beweegt. Om het naar beneden te bewegen, verander de Y Waarde naar een negatief nummer. Aangezien we willen dat de baksteen terug naar zijn oorspronkelijke positie beweegt, zullen we het verplaatsen met -0.20 Meters. Je moet ook de duur veranderen naar 0.10 Seconden.
Tegen deze tijd, als je op play drukt, kan je speler de baksteen van onderaf raken en de baksteen zal op en neer stuiteren. Er zijn echter een paar problemen die we moeten aanpakken.
-
Er is een kleine bug met onze logica. Als de speler echt snel blijft springen zonder de baksteen terug naar de oorspronkelijke positie te laten komen, zal deze blijven stijgen.
-
De baksteen stuitert voor altijd. Wat als je maar een paar munten wilt, en het moet stoppen als het leeg is?
-
Het geeft nog geen munten.
Laten we beginnen met probleem 1 aan te pakken. Dit is eigenlijk een eenvoudige bug om op te lossen. Alles wat we hoeven te doen is het collision gedrag uit te schakelen zodra de speler het raakt, en het weer in te schakelen wanneer het klaar is met bewegen.
Om dit te doen, schakel over naar de Aangepast categorie en voeg "Gedrag Uit" toe, en verbind dit met het Gecollisioneerd gedrag.
Vervolgens, vanuit de eigenschappen van Gedrag Uit, tik je op het lege vak met het label "Selecteer Gedrag". Zoek in de lijst naar het juiste Gecollisioneerd gedrag. Let op dat de lijst alle gedragingen toont van alle objecten. De lijst is gesorteerd op objectnaam.
Nu moet je het gecollisioneerde gedrag weer inschakelen wanneer het klaar is met stuiteren. Om dit te doen, voeg je simpelweg een Gedrag Aan toe vanuit de Aangepast categorie en verbind het met de tweede Beweeg Door gedrag. Vanuit de gedrags-eigenschappen, zorg ervoor dat je het Gecollisioneerd gedrag selecteert om het weer in te schakelen.
Voor probleem 2, gebruiken we een dooscontainer om de hoeveelheid munten in elke baksteen in te stellen. Dit maakt het gemakkelijk om specifieke bakstenen te veranderen zodat ze meer of minder munten hebben.
De eerste stap is om een dooscontainer toe te voegen vanuit de Aangepast categorie, die je overal op het scherm kunt plaatsen, omdat deze met niets anders is verbonden. Je kunt deze dooscontainer ook omdopen tot "Munten" zodat deze later gemakkelijker te vinden is (om te onthouden hoe je gedragingen kunt hernoemen, kijk in Deel 4)
Verander vanuit de gedrags-eigenschappen van de Munten dooscontainer de eigenschap "Standaard Waarde" naar 3. Dit is hoeveel munten de baksteen vasthoudt.
Voeg nu vanuit de Logica categorie een Waarden Toevoegen gedrag toe en verbind het met de tweede Beweeg Door die we eerder hebben toegevoegd. We zullen dit Waarden Toevoegen gedrag gebruiken om bij te houden elke keer dat de speler de baksteen raakt.
Wanneer het "Waarden Toevoegen" gedrag is verbonden, tik erop om de gedrags-eigenschappen te bekijken. De eigenschappen tonen 2 invoervelden, en het "Waarden Toevoegen" gedrag zal de som van de ingevoerde waarden weergeven.
In ons geval, omdat we de toevoeging gebruiken om elke hit bij te houden, zullen we 1 in het bovenste veld invoeren, en voor het onderste veld, geven we de som van de Waarden Toevoegen gedrag terug in het tweede invoerveld.
Wat dit doet, is de som verhogen elke keer dat het gedrag wordt uitgevoerd. De eerste keer dat het gedrag wordt uitgevoerd, is het 1+0 aangezien er geen som is. De tweede keer dat het wordt uitgevoerd, is het 1+1, aangezien de som van de vorige keer is opgeslagen.
Volgende moet je controleren of de som van de waardetoevoegingen gelijk is aan de Munten dooscontainer die je eerder hebt toegevoegd.
Om dit te doen, voeg een ALS gedrag toe vanuit de Logica categorie en verbind het met de Waarden Toevoegen van de vorige stap.
Met de ALS verbonden, tik erop om de gedrags-eigenschappen te bekijken. Het ALS gedrag, controleert of een specifieke voorwaarde is vervuld (op basis van de 2 invoervelden, en de geselecteerde voorwaarde).
In dit geval, zullen we de som van het Waarden Toevoegen gedrag delen en deze in het eerste veld van de ALS plaatsen.
Vervolgens wordt de inhoud van de dooscontainer in het tweede geplaatst.
Met deze waarden ingevoerd, zal het volgende gedrag alleen worden uitgevoerd ALS de som van de waarde toevoegen gelijk is aan de waarde opgeslagen in de munten dooscontainer.
Wat je nu moet doen is het gecollisioneerde gedrag uitschakelen, en de grafiek wijzigen zodat je geen munten meer kunt krijgen. Om dit te doen, voeg een nieuw Gedrag Uit gedrag toe vanuit de Aangepast categorie en verbind het met de ALS. Zoals eerder, selecteer je het Gecollisioneerd gedrag als degene die je wilt uitschakelen.
Om de speler te laten zien dat er geen munten meer zijn, kun je het Grafiek Wijzigen gedrag toevoegen vanuit de Transformeren categorie en dit verbinden met de ALS.
Wanneer het is verbonden, selecteer een nieuwe grafiek vanuit de Grafiek Wijzigen gedrags-eigenschappen. Tik op het tweede vak in de gedrags-eigenschappen en selecteer een nieuwe grafiek.
Als je nu op play drukt, kun je omhoog springen en de baksteen 3 keer raken voordat het stopt.
Punten Verzamelen
De UI Instellen
Het volgende dat resteert is om daadwerkelijk punten te krijgen en munten te verzamelen wanneer je de baksteen raakt!
Het eerste wat we zullen doen is een teller in de hoek van het scherm toevoegen om de speler te vertellen hoeveel punten ze hebben.
Dus, ga terug naar de hoofdeditor door op terug te drukken vanuit de gedragseditor. Vervolgens moet je de Laag balk oproepen door op de 3 stippen aan de rechterkant van het scherm te tikken (je kunt ook vanaf de zijkant van het scherm vegen).
Selecteer de Globale UI laag. De UI lagen bestaan bovenop de andere lagen in de scène en worden meestal gebruikt voor knoppen, joysticks en labels. Ze staan ook vast op dezelfde plek op het scherm, en lijkt te bewegen met de rest van de inhoud in je scène.
Opmerking: Objecten die op de Globale UI laag worden geplaatst, zullen bestaan in elke scène in je project. Als je iets wilt dat alleen in één scène bestaat, gebruik dan de Scène UI laag.
Met de Globale UI laag geselecteerd, tik op het Speciale Objecten beakericoon in het dock, of sleep het in de scène.
Kies vanuit de popup Label, en een label zal in je scène worden geplaatst.
Tik op het nieuw toegevoegde label om de objecteigenschappen te openen. Vanuit de label-eigenschappen kun je de tekstkleur, lettertype, te tonen tekst, en meer veranderen.
Tik op het grote tekstvak en verander de tekst in "Punten:".
Vervolgens, tik "Uitlijning" om de uitlijnings-eigenschappen uit te breiden. Stel de Breedte in op 110 en Hoogte op 64.
Opmerking: Door deze op 0 in te stellen, wordt het tekstgebied verwijderd, en kan je tekst zich horizontaal oneindig uitbreiden.
Met de label-eigenschappen allemaal ingesteld, kun je de Beweeg/Transformeer tool gebruiken om je nieuwe label in de hoek van het scherm te positioneren en ervoor te zorgen dat je het zicht van de speler niet obstructeert.
Als je label eenmaal is gepositioneerd, voeg je een ander label in de scène toe. We zullen dit label gebruiken om je punten weer te geven. Stel deze keer de tekst in op 0, aangezien je speler begint met nul punten. In tegenstelling tot eerder, zullen we een specifieke breedte en hoogte instellen. Stel de breedte in op 500pt, en de hoogte op 64pt. Dit geeft een specifiek gebied, waar de tekst kan verschijnen. Als je te veel tekst hebt om in dit gebied te passen, wordt het afgesneden.
Stel ook de horizontale uitlijning in op links uitgelijnd (Flush Left).
Wanneer je klaar bent met de label-eigenschappen, positioneer het naast de titel "Punten".
Punten Verzamelen
Nu moeten we je punten verhogen telkens wanneer je een munt krijgt. Schakel terug naar je hoofdlaag en ga terug naar de gedragingen voor de baksteen met de munten, zodat we de nodige gedragingen kunnen toevoegen.
Voeg vanuit de UI categorie het "Voeg Toe aan Score" gedrag toe, en verbind het met de tweede Beweeg Door gedrag dat eerder in deze gids is toegevoegd.
Vervolgens, tik op het Voeg Toe aan Score gedrag, en zet de Oneindige Score schakelaar aan. Als deze schakelaar uit was, zou het volgende gedrag worden geactiveerd wanneer de opgegeven score is bereikt. Zorg er ook voor dat het "0" label is geselecteerd als het juiste object, aangezien het Voeg Toe aan Score gedrag automatisch een willekeurig label in je scène selecteert.
Als je nu op play drukt, krijg je 1 punt voor elke keer dat de speler de baksteen raakt.
Nu kun je deze baksteen dupliceren (zoals je in deel 3 hebt geleerd) en door je level verspreiden.
Individuele Munten
Je eerste munt
Soms wil je misschien gewoon munten door je level heen toevoegen zonder ze in bakstenen te verstoppen. Dit is relatief eenvoudig, en we gaan dat nu bekijken.
Begin met het toevoegen van je muntgrafiek in je scène, tik er dan op om de objecteigenschappen te bekijken.
Vanuit de onderkant van de objecteigenschappen, zorg ervoor dat het fysica tabblad is geselecteerd.
Terwijl je in het fysica tabblad bent, maak je de munt doorlaatbaar. Dit stelt onze speler in staat om er doorheen te blijven rennen zonder te worden gestopt of vertraagd.
Vervolgens passen we de botsingsgrenzen van de munt aan. De botsingsgrenzen definiëren de fysieke vorm van het object. De botsingsgrenzen kunnen een andere grootte of vorm hebben dan de visuele weergave van het object. Om de botsingsgrenzen aan te passen, tik op het Botsingen pictogram.
Vanuit de Botsing Editor kun je de gereedschapspalet aan de linkerkant gebruiken om unieke botsingsvormen aan te passen en te creëren.
Voor deze gids kiezen we de "Cirkel" optie om een cirkelvormige botsingsgrens te creëren.
Vervolgens versleep je de groene stip op de cirkel om de botsingsgrens te veranderen. Maak de botsingsgrens even groot als de munt. Let op, als de botsingsgrens groter is dan je object, kan je speler er al mee interageren voordat deze het munt-grafiek in het midden fysiek aanraakt.
Wanneer je klaar bent met het creëren van de botsingsgrens, tik je op het vinkje-icoon in de gereedschapspalet om de nieuwe vorm te accepteren en op te slaan.
Tik opnieuw op de munt om de Object Eigenschappen te bekijken. Dit keer open je de gedragseditor voor de munt.
Voeg vanuit de Object categorie het "Gecollisioneerd" gedrag op het scherm toe. Net als voorheen, open de eigenschappen van het gecollisioneerde gedrag en selecteer de Groene Ruimtevaardiger speler voor Object B.
Vervolgens vanuit de UI categorie, sleep het Voeg toe aan Score gedrag en verbind het met het gecollisioneerde. Weer, vanuit de gedrags-eigenschappen, zet de schakelaar voor Oneindige Score aan, en zorg ervoor dat het juiste scorelabel is geselecteerd.
Tenslotte, vanuit de Object categorie, voeg het Object Vernietigen gedrag toe, en verbind het met het gecollisioneerde gedrag. Dit zal de munt volledig verwijderen zodra de speler er tegenaan loopt.
Als je op play drukt, kun je nu tegen de munt aanlopen en deze verdwijnt.
Dat is het! Nu heeft je platformspel verzamelbare munten. Op dit punt is het enige wat je hoeft te doen om je munten te dupliceren en door je level te plaatsen. Probeer creatief te zijn bij het plaatsen van je munten!
Je kunt de voltooide versie van Deel 5 downloaden vanuit de Hub en alles in actie zien.
In Deel 6, zullen we wat moeilijkheid aan het spel toevoegen door vijanden in te voeren.

