Rendi il tuo codice scratch più efficiente con i blocchi personalizzati

Cosa starai creando

Ora sei quasi sempre in questa serie di principianti su Scratch. Hai creato un gioco in cui l'utente insegue un gatto con un granchio, il gatto dice 'Ouch!' quando il granchio lo colpisce, e viene mantenuto un punteggio. Il gioco ha alcune animazioni e mantiene il punteggio, che viene visualizzato alla fine.

In questa parte continueremo a lavorare su quel progetto. Useremo un blocco personalizzato per rendere il nostro codice più ordinato e più semplice da utilizzare.

Usi di blocchi personalizzati

I blocchi personalizzati hanno pochi usi:

  • Usali per applicare il principio DRY (Do not Repeat Yourself) ai tuoi progetti, sostituendo i blocchi che usi più di una volta con un blocco personalizzato. In questo modo è possibile definire una routine una volta e quindi utilizzarla ogni volta che è necessario inserendo il blocco personalizzato nel progetto.
  • Se i tuoi script diventano ingombranti e ingombranti, usali per riordinare le cose e memorizzare lunghe routine altrove.
  • Creazione di routine ricorsive in cui la routine viene eseguita di nuovo se una condizione è o non è soddisfatta.
  • Creazione di routine in cui i valori o le stringhe possono essere modificati ogni volta che si aggiunge la routine a uno script.

In questo tutorial useremo i primi tre approcci.

Cosa ti serve

Per completare questo tutorial, avrai bisogno di:

  • un account gratuito con Scratch
  • un browser web con accesso a Scratch (ti consiglio di utilizzare un browser moderno come Chrome, Firefox, Safari o Opera per la migliore esperienza)

Iniziare

Lavoreremo con il progetto creato nell'ultima parte di questa serie, sulle animazioni. Useremo le risorse e gli script che abbiamo creato finora e ne aggiungeremo altri.

A seconda che tu abbia lavorato con quel tutorial, ci sono due modi per iniziare questo tutorial:

  • Apri il progetto che hai creato per l'ultimo tutorial e ne fai un duplicato.
  • Remix il progetto che ho creato per supportare l'ultimo tutorial.

In alternativa puoi continuare a lavorare nello stesso progetto che hai già creato. Ecco come fai ognuno di questi (dovrai farlo solo uno).

Duplicazione del tuo progetto

Apri Scratch e vai al progetto che desideri duplicare. Assicurati di aver fatto clic su Vedi dentro pulsante in modo da poter vedere il funzionamento del progetto.

Nella barra degli strumenti, fare clic su File> Salva come copia:

Scratch aprirà la tua nuova copia. Rinominalo e inizia a lavorarci.

Remixing My Project

Accedi a Scratch e vai alla pagina per il mio progetto sulle animazioni.

Clicca il Vedi dentro pulsante per visualizzare il progetto:

Ora fai clic sul Remix pulsante. Scratch salverà un duplicato del mio progetto come nuovo progetto nel tuo account. Rinominalo e sei a posto!

Creazione di un blocco personalizzato per evitare la ripetizione

Per prima cosa è necessario identificare dove un blocco personalizzato renderebbe gli script più efficienti. In questo progetto lo script principale per lo stage include alcune ripetizioni di due righe:

  • attendere 1 sec
  • cambia Timer di -1

Questo non è un codice ripetitivo, quindi in un progetto reale potresti scegliere di lasciarlo così com'è, ma per lo scopo di questo tutorial sostituiamolo con un blocco personalizzato.

Seleziona il Palcoscenico e fare clic su Più blocchi. Clicca sul Crea un blocco pulsante. Ti verrà presentato il Nuovo blocco la finestra di dialogo:

Ora vedrai un nuovo "cappello" di script chiamato definire Count down ogni secondo (o come lo hai chiamato tu):

Per definire questo blocco, è necessario aggiungere i blocchi che sostituirà sotto tale 'cappello'. Questi saranno i attendere 1 sec e cambia Timer di -1 blocchi.

Dopo averlo fatto, modifica lo script con quei due blocchi ripetuti in modo che i due blocchi vengano sostituiti ogni volta dal blocco personalizzato. Lo script ora avrà 11 blocchi di codice anziché 14:

Questo ha solo ridotto il codice di tre righe in quello script, ma puoi vedere come se tu stessi usando routine più grandi o ripetendole più spesso, forse per gli sprite diversi, renderebbe le cose più efficienti. Se vuoi applicare un blocco personalizzato a tutti gli sprite, crealo nello stage.

Creazione di un blocco personalizzato per abbreviare uno script

Un altro modo per utilizzare blocchi personalizzati è quello di sostituire le routine di grandi dimensioni negli script, rendendo gli script più brevi e più facili da gestire. Il gatto sprite ha attualmente un sacco di blocchi nel suo script principale, quindi applichiamo questo principio a questo.

Ecco come sono ora gli script di gatto:

Creiamo due blocchi personalizzati: uno per la routine che chiede all'utente di definire cosa dirà il gatto e uno per la routine che fa reagire il gatto all'essere catturato dal granchio.

Assicurati di aver selezionato il gatto e vai al Più blocchi sezione. Clicca il Crea un blocco pulsante e nominare il primo blocco. Lo chiamerò: "L'utente definisce il suono del gatto".

Ora trascina i blocchi che eseguono quella routine sul "cappello" per il tuo blocco personalizzato. I blocchi che devi spostare sono i seguenti:

  • chiedi Se il gatto miagola o urla quando viene pizzicato dal granchio? e aspetta
  • se rispondi = miagolio allora
  • dì miagolare per 2 secondi
  • altro
  • se answer = urlo allora
  • di 'urlo! per 2 secondi

Assicurati di trascinare i blocchi sotto di questi allo script originale.

Ora aggiungi il L'utente definisce il suono del gatto blocca nella tua sceneggiatura originale nel punto in cui hai estratto i blocchi sopra.

Ripeti l'operazione per le righe di codice che seguono, creando un nuovo blocco personalizzato chiamato Il gatto reagisce alla cattura, aggiungendo i blocchi a questo e aggiungendo il nuovo Il gatto reagisce alla cattura bloccare il tuo script originale.

Ecco come appaiono gli script del gatto ora:

La quantità di codice è la stessa, ma separando le due routine hai reso più facile vedere cosa sta succedendo nel tuo script originale. Questa è una tecnica che alcune persone troveranno utile, mentre altri potrebbero preferire rimanere fedeli a tutti i blocchi in una lunga scrittura!

Creazione di un blocco personalizzato per una routine ricorsiva

Un altro uso per un blocco personalizzato consiste nel creare una routine ricorsiva, in cui una routine può essere eseguita all'interno di se stessa. È più facile da spiegare creandone uno.

Il L'utente definisce il suono del gatto il blocco personalizzato che abbiamo appena definito richiede all'utente di digitare un suono che farà il gatto. Se l'utente digita "meow" o "scream", lo script reagisce. Ma cosa succede se l'utente digita o digita qualcos'altro? Se ciò accade, vogliamo mostrare un messaggio all'utente e poi fare di nuovo la domanda. Possiamo farlo creando il L'utente definisce il suono routine ricorsiva.

Seleziona il gatto sprite e modifica il L'utente definisce il suono del gatto blocco personalizzato. Inizia sostituendo il Se bloccare dentro il altro sezione del se altro bloccare con un secondo se altro bloccare. Assicurati di copiare le condizioni (risposta = urlo) dal tuo originale Se bloccare nel Se sezione del nuovo se altro bloccare. Muovi il di 'urlo! per 2 secondi bloccare dentro il Se loop in quello se altro bloccare.

Ora nel altro sezione del se altro blocco, aggiungi questi blocchi:

  • di scusa, non l'ho preso per 1 sec
  • imposta il timer su 0
  • L'utente definisce il suono del gatto

Ecco come apparirà il tuo script:

Ora se l'utente inserisce la risposta sbagliata, il gatto dirà "Scusa, non l'ho capito", il Timer si azzererà e la routine verrà ripetuta, chiedendo all'utente quale suono vogliono che il gatto rendere.

Sommario

I blocchi personalizzati sono uno strumento molto utile in Scratch. Come hai imparato in questo tutorial, puoi usarli per salvare ripetutamente un insieme di blocchi nel tuo progetto, oppure puoi definire routine che poi aggiungi a uno script, rendendo i tuoi script più gestibili. Se hai bisogno di ripetere una routine se una condizione è soddisfatta, puoi creare una routine ricorsiva come quella che hai creato per il gatto.

Puoi anche includere stringhe, numeri e input booleani nei tuoi blocchi personalizzati, il che significa che ogni volta che aggiungi un blocco a uno script, puoi cambiare il modo in cui funziona. Per maggiori informazioni su questo, controlla il wiki di Scratch.

Il tuo progetto Scratch è ora completo! Nella prossima e ultima parte di questa serie, vedremo come è possibile condividere il tuo lavoro e creare studi per lavorare in modo collaborativo.