03 - Pallina Rimbalzina.
Logo di scratch
03 - Pallina Rimbalzina. /1
Logo di scratch
immagine

Realizziamo il progetto qui accanto.


Con il dito potrai lanciare la pallina
in tutte le direzioni.

Ovviamente la pallina dovrà rimbalzare quando toccherà i lati dello schermo.

Infine faremo cambiare il colore alla pallina ogni qual volta l'utente la toccherà
e/o urterà un bordo.


immagine

Per prima cosa modifica la proprietà Title di Screen1


immagine

Aggiungi allo Screen1 un button, un canvas e una ball
così come in figura.

Il canvas è indispensabile perchè se no non puoi mettere la pallina.


Il raggio della pallina deve essere di 15 pixel:
sei capace di impostarlo da sol*?


Ora gestiamo il movimento della pallina.

03 - Pallina Rimbalzina. /2
Logo di scratch

Il metodo che intercetta lo swipe del dito sulla pallina è Flung.
Tutte le variabili del metodo Flung
sono quelle relative allo swipe così come lo ha fatto l'utente.

immagine

Impostiamo l'angolazione e la velocità della pallina in accordo con quella dello swipe.


Acceleriamo un po' la nostra pallina.


immagine

Nell'area dei blocchi seleziona la sezione Math
e scegli l'operatore per la moltiplicazione.


immagine

A cosa serve quel quadratino blu?

Cliccandoci su abbiamo la possibilita di configurare il blocco.

In questo caso possiamo scegliere la quantità di numeri da moltiplicare tra loro.

A noi ne bastano due.


Moltiplichiamo il valore dello swipe per 5.

immagine

La costante 5 la si fa prendendo il primo blocco della sezione Math.

03 - Pallina Rimbalzina. /3
Logo di scratch

Occupiamoci adesso di far rimbalzare la pallina contro i bordi.

Il metodo che si occupa di intercettare lo scontro con un bordo è EdgeReached.

La sua unica variabile edge esprime l'angolatura
con la quale è avvenuto lo scontro

immagine

Il metodo che impone alla pallina di rimbalzare di un certo angolo è Bounce.

Ovviamente l'angolo che ci serve è proprio quello che ci dà il metodo EdgeReached


immagine

Il blocco che gestisce l'arresto della pallina è molto molto semplice.


Resta da gestire solo il cambio del colore.

La pallina cambia colore in due circostanze:
quando l'utente la tocca e quando tocca un bordo.


immagine

In casi come questo è conveniente realizzare una procedura

Esistono due tipi di procedure:
quelle che producono un risultato e quelle che non lo producono.

immagine

Prendi un blocco per una procedura con il valore di restituzione e chiamala creaUnColoreCasuale.

Come vedi, anche questo blocco è configurabile (quadratino blu)
In questo caso possiamo stabilire dei parametri di input.
Nel nostro caso: niente parametri.

03 - Pallina Rimbalzina. /4
Logo di scratch

Dobbiamo costruire un colore a caso.

immagine

Nella sezione Color
prendi un blocco make color
ed aggancialo alla procedura.

I colori si rappresentano come una terna di numeri:
Il primo numero (da 0 a 255) rappresenta la quantità di rosso,
Il secondo numero (da 0 a 255) rappresenta la quantità di verde,
Il terzo numero (da 0 a 255) rappresenta la quantità di blu.


immagine

Per creare un valore casuale vai in Math
e scegli il blocco qui a lato.


Quando l'utente tocca la pallina si verifica l'evento Touched.

immagine

In questo caso impostiamo il colore della pallina
al valore restituito dalla nostra procedura
(cerca il blocco call creaUnColoreCasuale in Procedures).


Infine duplica quest'ultima impostazione ed inserisci la copia
nella gestione dell'evento EdgeReached.


Sfifda

Sei capace di sistemare la pallina al centro del monitor?

Bene, vogliamo che la pallina si trovi al centro del monitor
sia all'inizio (guarda bene tra gli eventi di Screen)
che tutte le volte che si schiaccia il pulsante.

Ti serve per caso una procedura?