Maak uw krascode efficiënter met aangepaste blokken

Wat je gaat creëren

Je bent nu het grootste deel van de serie van deze beginners op Scratch. Je hebt een spel gemaakt waarin de gebruiker een kat achtervolgt met een krab, de kat zegt 'Ouch!' wanneer de krab het knipt en een score wordt bewaard. De game bevat enkele animaties en houdt de score bij, die aan het eind wordt weergegeven.

In dit deel blijven we aan dat project werken. We gebruiken een aangepast blok om onze code opgeruimd en gemakkelijker te maken.

Gebruik van aangepaste blokken

Aangepaste blokken hebben een paar toepassingen:

  • Gebruik ze om het DRY-principe (Do not Repeat Yourself) op uw projecten toe te passen, waarbij u blokken vervangt die u meerdere keren gebruikt met een aangepast blok. Op deze manier kunt u een routine eenmaal definiëren en deze vervolgens gebruiken wanneer u maar wilt door uw aangepaste blok in uw project in te voegen.
  • Als uw scripts groot en onhandig worden, gebruik ze dan om dingen op te ruimen en lange routines elders op te slaan.
  • Recursieve routines maken waarin de routine opnieuw wordt uitgevoerd als aan een voorwaarde wel of niet wordt voldaan.
  • Routines maken waarin waarden of tekenreeksen kunnen worden gewijzigd telkens wanneer u de routine toevoegt aan een script.

In deze zelfstudie gebruiken we de eerste drie benaderingen.

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 laatste deel van deze serie is gemaakt, over animaties. 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 animaties.

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 aangepast blok maken om herhaling te voorkomen

Eerst moet u vaststellen waar een aangepast blok uw scripts efficiënter zou maken. In dit project bevat het hoofdscript voor het werkgebied een herhaling van twee lijnen:

  • wacht 1 sec
  • verander Timer met -1

Dit is niet veel herhalende code, dus in een echt project kun je ervoor kiezen om het te laten zoals het is, maar voor het doel van deze tutorial laten we het vervangen door een aangepast blok.

Selecteer de Stadium en klik op Meer blokken. Klik op de Maak een blok knop. Je krijgt de Nieuw blok dialoog venster:

Je ziet nu een nieuw script 'hoed' genaamd definiëren Tel af elke seconde (of hoe je het ook noemt):

Om dit blok te definiëren, moet je blokken toevoegen die onder die 'hoed' vervangen zullen worden. Dit zijn de wacht 1 sec en verander Timer met -1 blokken.

Zodra je dat hebt gedaan, bewerk je het script met die twee herhalende blokken erin, zodat de twee blokken telkens worden vervangen door je eigen blok. Het script bevat nu 11 codeblokken in plaats van 14:

Dit heeft de code alleen met drie regels in dat script verminderd, maar je kunt zien dat als je grotere routines zou gebruiken of vaker zou herhalen, voor verschillende sprites misschien, het de dingen efficiënter zou maken. Als u een aangepaste blokkering wilt toepassen op al uw sprites, maakt u deze in het werkgebied.

Een aangepast blok maken om een ​​script in te korten

Een andere manier waarop u aangepaste blokken kunt gebruiken, is het vervangen van grote routines in uw scripts, waardoor uw scripts korter en gemakkelijker te beheren zijn. De sprite van de kat heeft momenteel nogal wat blokken in zijn hoofdscript, dus laten we dit principe daarop toepassen.

Dit is wat de cat-scripts er nu uit zien:

Laten we twee aangepaste blokken maken: een voor de routine die de gebruiker vraagt ​​om te definiëren wat de kat zal zeggen, en een voor de routine waarmee de kat reageert wanneer hij door de krab wordt gepakt..

Zorg ervoor dat je de kat hebt geselecteerd en ga naar de Meer blokken sectie. Klik op de Maak een blok knop en geef uw eerste blok een naam. Ik ga het noemen: 'Gebruiker definieert kattengeluid'.

Sleep nu de blokken die die routine uitvoeren naar de 'hoed' voor uw aangepaste blok. De blokken die u moet verplaatsen, zijn de volgende:

  • vraag Moet de kat miauwen of gillen als hij door de krab wordt gesmoord? en wacht
  • als antwoord dan miauwt dan
  • zeg miauw gedurende 2 seconden
  • anders
  • als antwoord = schreeuw dan
  • zeg Schreeuw! gedurende 2 seconden

Zorg ervoor dat je blokken eronder versleept naar het originele script.

Voeg nu de Gebruiker definieert het kattengeluid blokkeren in je originele script op de plek waar je de bovenstaande blokken hebt verwijderd.

Herhaal dit voor de coderegels onder dat, waarmee een nieuw aangepast blok wordt gemaakt Kat reageert op gevangen worden, de blokken hieraan toevoegen en het nieuwe toevoegen Kat reageert op gevangen worden blokkeren naar je originele script.

Dit is wat de scripts van de kat er nu uit zien:

De hoeveelheid code is hetzelfde, maar door de twee routines te scheiden, hebt u het gemakkelijker gemaakt om te zien wat er in uw originele script gebeurt. Dit is een techniek die sommige mensen nuttig vinden, terwijl anderen er misschien de voorkeur aan geven om al je blokken in één lang script bij te houden!

Een aangepast blok maken voor een recursieve routine

Een ander gebruik voor een aangepast blok is om een ​​recursieve routine te maken, waarin een routine in zichzelf kan worden uitgevoerd. Het is gemakkelijker om uit te leggen door er een te maken.

De Gebruiker definieert het kattengeluid aangepast blok dat we zojuist hebben gedefinieerd, vraagt ​​de gebruiker om een ​​geluid in te typen dat de kat zal maken. Als de gebruiker 'miauw' of 'schreeuw' typt, reageert het script daarop. Maar wat als de gebruiker iets mist of iets anders typt? Als dat gebeurt, willen we een bericht weergeven aan de gebruiker en de vraag vervolgens opnieuw stellen. We kunnen dat doen door het maken van de Gebruiker definieert geluid routine recursief.

Selecteer de cat-sprite en bewerk de Gebruiker definieert het kattengeluid aangepast blok. Begin met het vervangen van de als blokkeren in de anders deel van de als - anders blok met een seconde als - anders blok. Zorg ervoor dat u de voorwaarden kopieert (antwoord = schreeuwen) van uw origineel als blokkeren in de als deel van het nieuwe als - anders blok. Verplaats de zeg Schreeuw! gedurende 2 seconden blokkeren in de als loop daarin als - anders blok.

Nu in de anders deel van de als - anders blok, voeg deze blokken toe:

  • sorry, dat heb ik 1 seconde lang niet opgemerkt
  • zet Timer op 0
  • Gebruiker definieert het kattengeluid

Hier ziet u hoe uw script er uit zal zien:

Als de gebruiker nu het verkeerde antwoord invoert, zegt de kat: 'Sorry, dat heb ik niet begrepen', de timer wordt op nul gezet en de routine wordt opnieuw uitgevoerd, waarbij de gebruiker wordt gevraagd naar welk geluid de kat wil maken.

Samenvatting

Aangepaste blokken zijn een erg handig hulpmiddel in Scratch. Zoals je in deze tutorial hebt geleerd, kun je ze gebruiken om te voorkomen dat je steeds weer een set blokken in je project herhaalt, of je kunt routines definiëren die je vervolgens toevoegt aan een script, waardoor je scripts beter beheersbaar worden. Als u een routine moet herhalen als aan een voorwaarde is voldaan, kunt u een recursieve routine maken zoals de routine die u voor de kat hebt gemaakt.

U kunt ook strings, getallen en Booleaanse invoer in uw aangepaste blokken opnemen, wat betekent dat elke keer dat u een blok toevoegt aan een script, u ​​de manier kunt wijzigen waarop het werkt. Voor meer informatie hierover, bekijk de Scratch-wiki.

Uw Scratch-project is nu voltooid! In het volgende en laatste deel van deze serie zullen we bekijken hoe u uw werk kunt delen en studio's kunt maken om samen te werken.