Scratch: stage, spazio e coordinate

Pubblicato da ABCode il

Difficoltà
Facile Facile
Tempo necessario
20-25 minuti 20-25 minuti

Per capire come muovere gli sprite in Scratch è importante prima di tutto capire come rappresentare la posizione di un elemento nello stage.

La posizione di uno sprite è sempre rappresentata dalle sue coordinate, ovvero da una coppia di numeri (X e Y) che indicano la posizione orizzontale e la posizione verticale dell’oggetto.

Cerchiamo di spiegarlo con parole semplici e con qualche esempio.

Battaglia navale

Sono sicuro che avrai certamente giocato a “battaglia navale”.

Quindi saprai che le navi sono posizionate su una griglia e che, per colpire le navi del tuo avversario, dovrai indovinarne la posizione, che indicherai pronunciando la lettera corrispondente alla riga e il numero corrispondente alla colonna della griglia.

Ad esempio dirai “C 4” e – se sei fortunato – colpirai la nave che si trova incrociando la riga C e la colonna 4.

“C” e “4” sono coordinate che identificano una precisa posizione nella griglia.

battaglia navale

La griglia di Scratch

Lo stage di Scratch funziona nello stesso modo, solo che la griglia è molto più fitta: mentre la griglia di battaglia navale conta solo 100 caselle (10×10) lo stage di Scratch è composto, invece, da migliaia di caselline – per la precisione sono 172.800 – di dimensioni piccolissime; praticamente dei puntini disposti su una griglia di ben 480 colonne e 360 righe. 

La posizione di un oggetto nello stage può quindi essere indicata da due numeri: il primo numero (X) indicherà la colonna, il secondo numero (Y) indicherà la riga.

Detto in altre parole: la coordinata X indica la posizione orizzontale di un oggetto nello stage; la coordinata Y ne indica la posizione verticale.

Una cosa molto importante da ricordare è che il centro della griglia di Scratch corrisponde alle coordinate X:0 / Y:0

Come puoi vedere dallo schema che segue, infatti, devi immaginare lo stage come se fosse suddiviso esattamente in quattro parti uguali, con una linea verticale (l’asse Y) e una linea orizzontale (l’asse X) che si incrociano esattamente al centro dello stage. Il centro corrisponde, quindi, al punto con coordinate X:0 e Y:0.

La griglia di Scratch

I punti che si trovano a destra dell’asse verticale vengono indicati con un numero (X) che va da 0 a 240. Per trovare i punti che si trovano alla sua sinistra dovrai, invece, usare i numeri negativi: da 0 a -240. La metà sinistra dello stage, infatti, si trova prima della linea dello 0.

Allo stesso modo i punti che si trovano al di sopra dell’asse orizzontale avranno una coordinata Y positiva (da 0 a 180), mentre i punti che si trovano al di sotto saranno indicati da una coordinata Y negativa (da 0 a -180).

Forse ora ti sembra tutto molto complicato… ma prova a guardare le diverse posizioni del gattino nella prossima immagine: segui le linee tratteggiate che vanno dal centro di ogni sprite  fino ai due assi X e Y e misura la posizione sulla griglia. Ti sembrerà tutto più chiaro.

È facile verificare, ad esempio, che lo sprite posizionato in alto a destra si trova alle coordinate X:100, Y:100, lo sprite in basso alle coordinate X: 200, Y:-100, e così via.

coordinate

Posizionare gli sprite con blocchi di codice

Ora che abbiamo visto come funziona il sistema di coordinate dello stage, passiamo alla parte divertente: il codice!

Vediamo quindi quali sono i blocchi e le istruzioni che ci permettono di posizionare uno sprite in un qualunque punto dello stage e di muoverlo come vogliamo.

Tutti questi blocchi si trovano nella categoria “movimento“.

vai a x (-50) y (100)

Il blocco vai a x: ( ) y: ( ) ti permette di spostare lo sprite nel punto preciso che si trova alle coordinate X e Y che indicherai (come numero) nelle caselline corrispondenti.

fai (80) passi

Il blocco fai ( ) passi fa avanzare lo sprite nella direzione in cui si trova, del numero di passi che hai indicato. Ricorda: 1 passo = 1 pixel (ovvero 1 punto della griglia).

Ad esempio: all’inizio di ogni nuovo progetto lo sprite del gattino si trova al centro dello stage (X:0, Y:0); l’istruzione fai (80) passi lo farà muovere leggermente verso destra, dal momento che il gattino è orientato verso destra. Dopo l’esecuzione dell’istruzione, lo sprite si troverà quindi a X:80, Y:0.

Se usi un numero negativo di passi lo sprite si muoverà all’indietro rispetto al suo punto di partenza.

cambia x di (10)

Il blocco cambia x di ( ) modifica la posizione orizzontale dello sprite di un numero di passi (pixel) pari al numero che hai indicato.

La differenza rispetto al blocco fai ( ) passi è che in questo caso non conta la direzione in cui si trova lo sprite: si muoverà sempre in orizzontale.

Userai un numero positivo per spostare lo sprite verso destra; un numero negativo per spostarlo verso sinistra.

cambia y di (10)

Allo stesso modo del precedente, ma in verticale: modifica la posizione verticale dello sprite del numero di passi indicato.

Che numero scriverai per spostare lo sprite verso l’alto? E verso il basso?

vai dove x è (100)

L’istruzione vai dove x è ( ) sposta lo sprite orizzontalmente, portandolo alla coordinata X specificata, mentre la posizione verticale rimane fissa.

In pratica consente di spostare lo sprite a destra o a sinistra dello stage, mantenendolo sempre alla stessa altezza.

vai dove y è (-50)

Come il precedente ma invertito, ovvero: sposta verticalmente lo sprite mantenendolo in posizione fissa sull’asse orizzontale.

cambia x di (10)
cambia y di (10)

Puoi combinare più blocchi diversi per compiere movimenti più complessi.

Ad esempio per muovere lo sprite in diagonale puoi combinare un blocco per modificare la coordinata X e un blocco per modificare la Y.

Sapresti spiegare qual è la differenza con questo codice?

punta in direzione (45)
fai (10) passi

Se non lo sai provalo direttamente su Scratch!

ripeti (10) volte
fai (50) passi
fai (-50) passi
fine

Prova a ripetere tante volte (usando il blocco ripeti ( ) volte) due blocchi che fanno spostare lo sprite prima a destra, poi a sinistra.

Probabilmente ti aspetteresti di vedere lo sprite “ballare” di qua e di là, con un movimento alternato a destra e a sinistra.

Invece, se esegui questo codice, scoprirai che… lo sprite non si muove!

Non è proprio così. Scratch è molto veloce ad eseguire i tuoi comandi; talmente veloce che non te ne accorgi nemmeno. Lo sprite si muoverà istantaneamente a destra, a sinistra, a destra….. a sinistra, e si ritroverà nella sua posizione di partenza; lo farà talmente velocemente che non lo vedrai muoversi e ti sembrerà fermo.

Dobbiamo, quindi, trovare il modo di rallentare un po’ l’esecuzione delle istruzioni: possiamo farlo utilizzando il blocco attendi ( ) secondi.

ripeti (10) volte
fai (50) passi
attendi(1) secondi
fai (-50) passi
attendi(1) secondi
fine

Riepiloghiamo con l'aiuto del gatto Scratch

Per ripassare tutta la (noiosa) teoria che hai letto finora fatti aiutare direttamente dal gatto Scratch, che oggi veste i panni di un professore! 

Questo progetto ti mostra come cambiano le coordinate di uno sprite al cambiare della sua posizione.

Clicca sulla bandierina verde e segui le istruzioni!


Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *