Maak je Scratch-animaties reactiever bij evenementen

Wat je gaat creëren

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.

Wat je nodig hebt

Om deze tutorial te voltooien, heb je nodig:

  • een gratis account bij Scratch
  • een webbrowser met toegang tot Scratch (ik raad het gebruik van een moderne browser zoals Chrome, Firefox, Safari of Opera aan voor de beste ervaring)

Ermee beginnen

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:

  • Open het project dat u voor de laatste zelfstudie hebt gemaakt en maak hiervan een duplicaat.
  • Remix het project dat ik heb gemaakt om de laatste zelfstudie te ondersteunen.

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).

Uw eigen project dupliceren

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.

Mijn project remixen

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!

Een broadcast-evenement maken om berichten te verzenden

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.

Een broadcastgebeurtenis gebruiken om een ​​script te starten

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.

Een script maken om de Sprite te laten verdwijnen

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.

Een script maken om de Sprite weer te laten verschijnen

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.

Gebeurtenissen met achtergronden gebruiken

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:

  • voeg een uitzending toe wanneer de timer afloopt
  • maak een nieuwe achtergrond om aan het einde van het spel weer te geven
  • verander de achtergrond wanneer de timer afloopt
  • verberg de bestaande sprites als het spel eindigt
  • vertel de gebruiker hun score wanneer het spel eindigt

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.

Een uitzending maken

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.

Een nieuwe achtergrond maken

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.

De achtergrond op het juiste moment wijzigen

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.

Sprites verbergen wanneer het spel eindigt (en ze laten zien wanneer het begint)

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.

De gebruiker zijn of haar score meedelen wanneer het spel eindigt

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.

Samenvatting

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.