Il movimento relativo su Scratch
In questa lezione ti spiego come spostare uno sprite nello stage di Scratch tramite dei movimenti relativi.
Cos'è il movimento relativo? Il movimento relativo ti consente di spostare gli sprite in relazione alla loro posizione attuale invece di utilizzare coordinate assolute. Ricorda che uno sprite è un personaggio o un oggetto che hai creato su Scratch
Puoi controllare il movimento relativo di uno sprite utilizzando questi blocchi di comando
- Cambia x di
Questo blocco sposta lo sprite di una certa quantità di pixel sull'asse x rispetto alla sua posizione attuale.
- Cambia y di
Questo blocco sposta lo sprite di una certa quantità di pixel sull'asse y rispetto alla sua posizione attuale.
- Punta in direzione
Questo blocco ruota lo sprite fino a una determinata angolazione.
- Ruota di
Questi blocchi ruotano la direzione attuale a destra o a sinistra di un determinato angolo.
- Fai n passi
Questo blocco sposta lo sprite di una certa quantità di pixel lungo la direzione attuale.
Questi blocchi di comando sono disponibili nella sezione "Movimento" del menu dei mattoncini grafici.
Ti faccio un esempio pratico.
Aggiungi uno sprite sullo stage alle coordinate x=20 e y=20 dello stage.
Lo sprite si trova nella posizione iniziale (x;y)=(20;20).
Ora clicca sullo sprite e seleziona la voce Codice in alto a sinistra.
Poi inserisci questo script.
Il blocco Cambia x aggiunge 10 pixel alla componente x della posizione attuale dello sprite.
Il blocco Cambia y aggiunge 10 pixel alla componente y della posizione attuale dello sprite.
Ad esempio, se lo sprite si trova alle coordinate (x;y)=(20;20), questi due blocchi modificano le coordinate dello sprite in questo modo (x;y)=(20+10;20+10)=(30;30)
Ogni volta che clicchi sulla bandiera verde (evento) questi due blocchi aggiungono 10 pixel alla posizione corrente (x+10;y+10) dello sprite.
Nota. In questo caso lo sprite si sposta in alto a destra perché stai aggiungendo 10 sia alla x che alla y. Per far spostare lo sprite in basso devi indicare un numero di pixel negativi sulla y. Ad esempio -10. Per far spostare lo sprite verso sinistra devi inserire un numero di pixel negativi sulla x. Ad esempio -10. Devi immaginare lo stage di Scratch come un sistema di assi cartesiani che ha l'origine (0;0) al centro dello stage.
Questi blocchi spostano lo sprite a sinistra o a destra, in basso o in alto senza considerare la direzione dello sprite.
Nel prossimo esempio vediamo come far spostare l'oggetto sulla direzione corrente.
In questo caso la direzione corrente dello sprite è 90°.
Ora modifica il codice dello sprite in questo modo.
Il blocco fai 10 passi sposta lo sprite di 10 pixel lungo la direzione corrente.
In questo caso la direzione corrente è 90° quindi lo sposta verso destra.
Nota. Scratch considera la direzione in questo modo. La direzione in alto corrisponde all'angolo 0°. La direzione a destra all'angolo 90°. La direzione a sinistra all'angolo -90°. Infine, la direzione in basso all'angolo 180°.
Per modificare la direzione dello sprite puoi usare il blocco punta in direzione.
Ad esempio, questo script punta in direzione -90° e poi sposta lo sprite di 10 pixel.
Ogni volta che clicchi sulla bandiera verde, lo sprite punta verso sinistra (-90) e si sposta di 10 pixel.
Il blocco punta in direzione modifica l'orientamento dello sprite in modo assoluto.
Nota. Questo vuol dire che -90° sarà sempre sempre un movimento verso sinistra e 90° un movimento verso destra.
In alternativa, puoi usare uno dei blocchi Ruota di per modificare la direzione in modo relativo.
Questi blocchi modificano la direzione in relazione alla direzione corrente.
Ad esempio, modifica lo script in questo modo.
Il blocco ruota di 90° gradi modifica la direzione dello sprite in base alla direzione corrente.
Ad esempio, se la direzione attuale dello sprite è verso sinistra (-90°), una ruotazione di +90° gira lo sprite verso l'alto perché -90°+90°=0° ossia un puntamento verso l'alto.
Ora ogni volta che clicchi sulla bandiera verde, lo sprite compie una rotazione di 90° e si sposta di 100 pixel in quella direzione.
Questo rende il movimento degli sprite più flessibile e versatile, permettendoti di creare animazioni più complesse.
In conclusione, il movimento relativo è una delle funzionalità di Scratch che ti consente di spostare gli sprite in relazione alla loro posizione attuale invece di utilizzare coordinate assolute.