In de vorige tutorial werkte je aan een project om een krab een kat achter het scherm te laten jagen, een tijdslimiet toe te voegen en de score bij te houden.
In dit deel blijven we aan dat project werken. We voegen een uitgezonden gebeurtenis toe en gebruiken deze om scripts voor andere sprites te activeren. Daarna zullen we de meeste sprites verbergen wanneer de game voorbij is en de uiteindelijke score weergeven.
Om deze tutorial te voltooien, heb je nodig:
We gaan werken met het project dat in het vorige deel van deze serie is gemaakt. We gebruiken de items en scripts die we tot nu toe hebben gemaakt en voegen er meer toe.
Afhankelijk van of u met die zelfstudie hebt gewerkt, zijn er twee manieren om aan de slag te gaan met deze zelfstudie:
Je kunt ook gewoon doorgaan met werken in hetzelfde project dat je al hebt gemaakt. Hier is hoe je elk van deze doet (je hoeft het alleen maar te doen).
Open Scratch en ga naar het project dat u wilt dupliceren. Controleer of u op de knop hebt geklikt Zie Inside knop, zodat u de werking van het project kunt zien.
Klik in de werkbalk op Bestand> Opslaan als een kopie:
Scratch opent je nieuwe exemplaar. Hernoem het en begin eraan te werken.
Log in op Scratch en ga naar de pagina voor mijn project over data en variabelen.
Klik op de Zie Inside knop om het project te bekijken:
Klik nu op de Remix knop. Scratch slaat een duplicaat van mijn project op als een nieuw project in uw account. Hernoem het en je bent klaar om te gaan!
In dit deel van de serie voegt u een toe uitzending
bericht aan uw project om intern te communiceren binnen uw project. U kunt een uitzending in één script maken wanneer dat script een bepaald punt bereikt, of aan een voorwaarde met betrekking tot een sprite is voldaan en dan een van de andere sprites (of de fase) op de uitzending van dat bericht laten reageren. Dit koppelt je sprites aan elkaar en geeft je meer ruimte als het gaat om het toevoegen van gebruikersinteracties.
Je zult je herinneren dat we eerder een sprite met wat tekst erin hadden toegevoegd (met 'Ouch !!') die we als kostuum voor die sprite hebben getekend. Op het moment dat Sprite roerloos op het podium zit en niets doet. Nu gebruiken we een uitzending om iets te doen.
Maar laten we eerst de uitzending maken.
Klik op de cat-sprite en bewerk het script dat u er al voor hebt gemaakt.
Open de Evenementen blokkeert en versleept de uitzending message1
blokkeren in het script, direct onder de verander Score per 1
blok. Klik op de vervolgkeuzelijst voor message1 en klik op nieuw bericht… . Typ wat tekst die u kunt gebruiken om uw uitzending te definiëren. Deze tekst zal niet door de gebruiker worden gezien, maar je zult hem elders in je project gebruiken, dus het is logisch om het iets zinvols te noemen. Ik bel de mijne gevangen.
Hier ziet het script van de kat er nu uit:
Nu kunnen we die uitzending gebruiken om scripts voor andere sprites te activeren.
Tot nu toe zijn we al onze scripts gestart met de toen de groene vlag klikte
blokkeren, wat betekent dat het script automatisch wordt uitgevoerd wanneer het project start. Soms wil je niet dat dit gebeurt: je wilt dat een script wordt geactiveerd nadat het project is gestart. Er zijn een paar manieren om dit te doen: u kunt een script activeren wanneer een sprite of een toets wordt ingedrukt, of wanneer een variabele zoals luidheid verandert. De methode die we hier zullen gebruiken is het starten van een script wanneer de sprite een broadcast-bericht ontvangt.
Klik op de tekstsprite die u eerder hebt gemaakt (Sprite2). Begin met het een betere naam te geven (door op te klikken ik pictogram links bovenaan en bewerking van de naam) -Ik roep de mijne au.
We willen dat deze sprite voor het grootste deel van de tijd onzichtbaar is en alleen verschijnt wanneer de krab de kat vangt. We zullen dus twee scripts maken: de eerste om de sprite te verbergen en de tweede om deze te laten verschijnen.
Maak dit script voor de sprite:
toen de groene vlag klikte
verbergen
Je zult het vinden verbergen
blokkeren in de looks blokken. Dit verbergt de sprite: nu wanneer u het project start, zal het verdwijnen.
Maak nu een tweede script voor de Ouch-sprite:
als ik gepakt word
ga naar de kat
laten zien
wacht 0,5 seconden
verbergen
Je vindt de eerste sprite in de Evenementen blokken, de ga naar
blokkeren in de Beweging blokken, de Wacht
blokkeren in de Controle sectie en de laten zien
en verbergen
blokkeert looks.
Naarmate je projecten langer en complexer worden, zul je merken dat je de gebruiker een gevoel van vooruitgang wilt geven door een game of animatie door de achtergrond te veranderen. Hier doen we dat als de timer op is en het spel is afgelopen.
Om dat te doen, moeten we:
We zullen de gebruiken uitzending
Evenement blokken en ook de wanneer de achtergrond overschakelt naar
gebeurtenisblok. Laten we beginnen met het creëren van die uitzending.
Selecteer de Stadium en voeg een toe uitzending
blokkeren tot het einde van het script, ter vervanging van de stop alles
blok. Ik noem deze uitzending spel is over.
Creëer nu een extra achtergrond voor het podium op dezelfde manier als je achtergronden eerder in deze serie hebt gemaakt. Selecteer de Stadium, Klik op de achtergronden tab en importeer, teken of selecteer een achtergrond in de bibliotheek. Ik selecteer de cirkels achtergrond van de bibliotheek.
De nieuwe achtergrond verschijnt nu en je oorspronkelijke achtergrond verdwijnt - geen paniek! We laten de originele verschijnen wanneer het project wordt gestart en de nieuwe wordt weergegeven als het spel is afgelopen.
Inmiddels kun je waarschijnlijk uitzoeken hoe je de eerste achtergrond kunt laten verschijnen wanneer het project wordt gestart. Sleep eenvoudigweg het schakel achtergrond in
blokkeren van de looks blokkeert het script voor het werkgebied, precies onder de toen de groene vlag klikte
blokkeren en boven de zet Score op 0
blok. Selecteer in de vervolgkeuzelijst in dat blok strand Malibu.
Wanneer u nu het project uitvoert, schakelt de achtergrond terug naar de achtergrond waarmee u bekend bent:
Als u de achtergrond wilt wijzigen wanneer het spel eindigt, maakt u een nieuw script voor het werkgebied:
als ik gepakt word
wissel achtergrond in cirkels
Je werkgebied heeft nu twee scripts:
Wanneer je nu je project uitvoert, verandert de achtergrond wanneer het spel eindigt, maar het spel eindigt niet echt. Laten we dat oplossen.
Wanneer het spel eindigt, willen we dat de krab, zeesterren en ouch-sprites verdwijnen. We moeten daarom voor elk van deze spites een identiek script maken, dat door de uitzending wordt geactiveerd. Het goede nieuws is dat je het script één keer kunt maken en vervolgens naar elk van de sprites kunt kopiëren.
Begin met de krabsprite. Maak dit script hiervoor aan:
wanneer ik game-over ontvang
verbergen
Kopieer dat script nu naar elk van de ouch- en starfish-sprites door het script uit de map te slepen scripts ruit voor de krabsprite op elk van de sprites onder het hoofdpodium.
Als je nu het spel speelt, zullen je sprites verdwijnen wanneer het spel eindigt - maar ze zullen niet opnieuw verschijnen als je het spel opnieuw speelt. Je moet ze dus laten verschijnen wanneer het project start.
Voor elk van de krab- en zeesterren sprites, voeg een toe laten zien
blok naar het script dat begint met toen de groene vlag klikte
, helemaal aan het begin. Doe dit niet voor de ouch sprite zoals die alleen verschijnt wanneer de krab en de kat elkaar raken. De krabsprite bijvoorbeeld ziet er nu als volgt uit:
Als je nu het spel speelt, verschijnen de sprites aan het begin en verdwijnen ze aan het einde. Het enige dat nu niet werkt, is de kattensprite, die nog steeds rondloopt. We willen niet dat het dat doet, dus we zullen het bestaande script voor de kat bewerken.
De kat heeft momenteel een voor altijd
blok dat de beweging en de score regelt. Vervang dat voor altijd
blokkeren met een herhaal tot
blok, zorg ervoor dat alle blokken nog steeds in de herhaal tot
blok dat in de voor altijd
blok. Misschien vindt u het gemakkelijker om het te slepen voor altijd
blokkeren van het script op de scripts paneel, sleep de herhaal tot
blokkeren in positie en sleep de blokken vanuit de binnenkant voor altijd
blokkeren in de herhaal tot
blok. Verwijder vervolgens de voor altijd
blok.
In de ruimte in de herhaal tot
blok, we kunnen geen a gebruiken wanneer ik ontvang
blokkeren, omdat ze zijn ontworpen om scripts uit te schakelen. In plaats daarvan gebruiken we een operator. Sleept de =
blok in die ruimte, sleep de timer
variabele naar de eerste spatie en typ 0 in de tweede ruimte dus het blok leest herhaal tot Timer = 0
.
Ren nu het spel en als de tijd stopt, zal de kat nog steeds zichtbaar zijn maar zal hij stil zijn.
Laat de kat de gebruiker hun score vertellen. Maak als volgt een nieuw script voor de cat-sprite:
wanneer de achtergrond overschakelt naar cirkels
say join You scored Score
Het maken van dat tweede blok is een beetje ingewikkeld. U moet de slepen slepen zeg hallo!
blokkeer het script en versleep het toetreden
blokkeren van operators naar de ruimte waar het zegt Hallo! Typ vervolgens 'You scored' in de eerste spatie in het join-blok en sleep de partituur
veranderlijk naar de tweede spatie. Zorg ervoor dat u een spatie toevoegt aan het einde van uw tekst. Het script ziet er als volgt uit:
Wanneer je het spel uitvoert, verschijnt de kat aan het eind alleen en geef je je score.
Door gebeurtenissen toe te voegen aan uw projecten kunt u dingen laten gebeuren terwijl het project vordert, als reactie op gebruikersinvoer, scripts die een bepaald punt bereiken of de waarde van een variabele die verandert. In deze zelfstudie hebt u geleerd hoe gebeurtenissen kunnen worden gebruikt om de achtergrond te wijzigen wanneer de timer aftelt tot nul en de score van de gebruiker weer te geven.
Als je zin hebt in een uitdaging, waarom voeg je dan geen operators toe aan de sprite die je hebt gemaakt en die de gebruiker hun score vertelt. Misschien kunt u een als
blok om de waarde van de te detecteren partituur
waardevol en laat de kat zeggen: 'Goed gedaan!' als de gebruiker meer dan een bepaald aantal scoort, of 'Volgende keer beter!' als ze een lage score hebben.
In het volgende deel van deze serie gaan we verder met het maken van geanimeerde effecten met achtergronden. We zullen gebruik maken van de dubbele achtergronden die we aan het begin van de serie hebben gemaakt om een zoomeffect te maken.