A caccia di coniglietti! – parte 1

Creiamo uno sprite


I conigli sono degli animali graziosi, ma per un coltivatore di carote sono una vera peste!

Per imparare a programmare su Scratch, io e il mio bimbo vi proponiamo questo esercizio: creare un gioco in cui dei coniglietti sbucano dal terreno e mangiano carote e noi, nei panni di un agricoltore disperato, cerchiamo di catturarli.

Per prima cosa, occorre creare gli sprites e lo stage occorrenti al gioco. Per queste nozioni di base, vi invitiamo a leggere l’articolo “Scratch a volo d’angelo“.

Scratch dà la possibilità di modificare l’aspetto di uno sprite in un semplice editor di immagini, accessibile cliccando sulla scheda “costumi”:

i-01

Per creare uno sprite, in generale, possiamo scegliere un’immagine dalla libreria di Scratch, scaricarla da internet, crearla direttamente dall’editor, acquisirla da webcam oppure, come abbiamo fatto noi, digitalizzando un disegno a mano libera per poi ritoccarlo nell’editor.

Per prima cosa, occorre cancellare lo sprite predefinito in Scratch (il gattino), cliccandoci su col tasto destro e successivamente selezionando “cancella”.

i-02

A questo punto, creiamo lo sprite del personaggio principale del gioco selezionando l’opzione “carica uno sprite da un file” per caricare l’immagine di un coniglio che avremo già preparato.

i-03

Ecco l’immagine del coniglietto disegnata dal coautore di questo articolo. Potete scaricarla ed utilizzarla per il vostro lavoro!

coniglietto

Caricata l’immagine, selezionate “Costumi” per accedere all’editor. Comparirà la seguente schermata:

i-04

Per cambiare il nome allo sprite, potete cliccare sull’icona icona-infoposta in alto a sinistra su quella dello sprite.

Ci serve tuttavia un’immagine senza sfondo, altrimenti lo sprite comparirà come un quadrato sullo stage. Per rendere chiaro quanto diciamo, proviamo a caricare uno stage, uno qualunque, dalla libreria di Scratch, selezionando l’icona “scegli uno sfondo dalla libreria” in basso a sinistra:

i-05

Per questa prova, scelgo il primo sfondo, chiamato “Atom Playground”, ma l’uno vale l’altro.

i-06

Per eliminare il “rettangolo” dietro il coniglietto, bisogna “scontornarlo”. L’operazione impiegherà un po’ di tempo e molta pazienza (tipica attività riservata esclusivamente ai papà). Per effettuarla occorre andare nella sezione “Costumi”.

Selezioniamo dunque lo strumento “cancella” (1), aumentiamone la dimensione spostando la barra di controllo posta in basso a sinistra della scheda (2), e cancelliamo lo sfondo muovendo lentamente il cerchietto (3). Possiamo constatare immediatamente l’effetto di tale operazione nello stage (4).

i-07-2

Continuiamo fino a lambire i contorni dello sprite con lo strumento “cancella”, ingrandendo il riquadro (5) e riducendo via via la dimensione della gomma (2).

Il risultato finale è il seguente:

i-08

Nel gioco, questo personaggio dovrà spuntare a caso nel campo. Ciò richiederà qualche ulteriore ritocco alla grafica dello sprite e l’introduzione di animazioni, ma sono aspetti che affronteremo successivamente. Per adesso facciamo qualche esperimento con il coniglietto e limitiamoci ad implementare l’algoritmo di base che controllerà l’apparizione causale dello sprite.

Dobbiamo innanzitutto stabilire cosa accade quando il gioco parte, ossia quando si preme la bandiera verde bandiera-verde posta in alto a destra dello stage. Per fare ciò, nella scheda “Script”, utilizzeremo il blocco inizio-algoritmo che possiamo trovare nella palette “Situazioni”.

E’ buona norma, anche se non indispensabile, utilizzare questo blocco definendo le impostazioni di partenza dello sprite. Ad esempio, nel nostro caso occorre ridurre le dimensioni dello sprite ad un livello accettabile, pari ad almeno il 40% delle dimensioni originarie, utilizzando il blocco porta-dimensione-al e settandone opportunamente il valore.

Portiamo i due blocchi che abbiamo appena presentato nello script e concateniamoli.

i-09

Cliccando sull’icona bandiera-verde in alto a destra dello stage viene eseguito il nostro rudimentale programma e la dimensione dello sprite si riduce fino al 40%.

Vogliamo inserire un controllo tale far muovere il coniglio in modo casuale sullo schemo. In Scratch questa operazione è semplicissima.

Ricordiamo, come abbiamo già scritto nell’articolo “Scratch a volo d’angelo“, che la posizione degli sprite nello stage è definita in un sistema di assi cartesiani con l’origine al centro. L’asse delle ordinate (coordinata Y) varia da -180 a 180, quello delle ascisse (coordinata X) da -240 a 240.

Affinché il nostro sprite non fuoriesca dal bordo dello stage, dovremo variare le coordinate entro un intervallo più stretto di quello offerto dall’intero stage: X dovrà essere compreso tra -200 e 200, Y tra – 120 e 120. Ciò perché se assegnassimo allo sprite un ascissa x=240 o x=-240, una buona metà dello stesso si collocherebbe fuori dallo stage (tutto il coniglietto è infatti largo almeno 70 punti). Analogamente avverrebbe se lo posizionassimo all’ordinata y=140 o y=-140.

L’area di movimento sarà quindi definita come segue:

i-10

Per controllare il movimento dello sprite, introduciamo gli strumenti disponibili nella palette “Controllo”. Qui troveremo i blocchi per le condizioni (se … allora …) e per il controllo della ricorsività (ripeti fino a quando …), essenziali per la grande maggioranza dei programmi.

Facciamo fare al nostro coniglietto 10 movimenti a caso nello stage. Utilizziamo il blocco ripeti-x-volte e lasciamolo settato sul valore 10. Aggiungiamo i blocchi vai-a-x-y dalla palette “movimento”; attendi-x-secondi dalla palette “controllo” e numero-a-caso disponibile nella palette “operatori”.

Assembliamo i blocchi nella sezione script, aggiungendoli a quelli già impostati per controllare la dimensione dello sprite:

i-11

A questo punto, eseguiamo il programma cliccando sulla bandierina verde bandiera-verde in alto a destra dello stage:

i-012

Il coniglietto si muoverà per dieci volte sullo stage per poi fermarsi al termine del programma, o fino a quando non cliccheremo sul pulsante rosso di arresto arresto.

Vi invito a personalizzare lo script per provare da soli i blocchi di movimento, di controllo e degli operatori. Il progetto è disponibile nella community Scratch al link https://scratch.mit.edu/projects/133390126/.

ciao