.. include:: /index.rst
:start-after: start_hello_message
:end-before: end_hello_message
Divertimento 6: Palla sensibile alla distanza
===========================================================
In questo progetto, utilizziamo un modulo a ultrasuoni per controllare il movimento verticale di una palla sul palco. Quando clicchi la bandiera verde, posiziona la mano sopra il modulo a ultrasuoni. La palla salirà se la distanza tra la tua mano e il modulo è inferiore a 15 cm; altrimenti, scenderà. Quando la palla entra in contatto con una linea, attiva un suono piacevole e attiva effetti di luce stellare scintillante.
.. raw:: html
Segui questi passaggi per configurare il progetto e sentiti libero di modificare gli effetti a tuo piacimento una volta che ti sarai abituato al funzionamento.
1. Selezionare gli sprite
--------------------------
* Rimuovi lo sprite predefinito e seleziona gli sprite **Ball**, **Bowl** e **Star**.
.. image:: img/ball_choose_sprite.png
* Posiziona lo sprite **Bowl** al centro in basso del palco e aumenta la sua dimensione.
.. image:: img/ball_set_bowl.png
* Posiziona lo sprite **Ball** direttamente sopra lo sprite **Bowl**, impostando la sua direzione a 0 per consentire il movimento verticale.
.. image:: img/ball_set_ball.png
* Regola la dimensione dello sprite **Star** e imposta la sua direzione a 180 per assicurarti che cada verso il basso. Questo può essere modificato in angoli diversi se preferito.
.. image:: img/ball_set_star.png
* Aggiungi lo sfondo **Stars** per un'atmosfera aggiuntiva.
.. image:: img/ball_select_backdrop.png
2. Disegnare uno sprite **Line**
--------------------------------
* Ora aggiungi uno sprite **Line**.
.. image:: img/ball_select_line.png
* Vai alla pagina **Costumes** dello sprite **Line**.
.. image:: img/ball_open_cos.png
:width: 90%
* Riduci leggermente la larghezza della linea rossa sulla tela, duplicala quattro volte e allinea queste linee.
.. image:: img/ball_copy_line.png
:width: 90%
* Colora ogni linea in modo diverso. Seleziona una linea, usa lo strumento **Fill** e scegli un colore.
.. image:: img/ball_set_bk_color.png
:width: 90%
* Applica questo metodo per colorare tutte le linee di conseguenza.
.. image:: img/ball_select_line_color.png
:width: 90%
* Torna alla pagina **Code** e posiziona lo sprite **Line** nella parte superiore del palco.
.. image:: img/ball_line_position.png
3. Scripting per lo sprite **Ball**
-------------------------------------
Qui scriviamo lo script per lo sprite **Ball** per farlo muovere su o giù in base alla distanza rilevata dal modulo a ultrasuoni, con un vincolo di movimento per simulare l'atterraggio sullo sprite **Bowl**.
* Quando si clicca la bandiera verde, imposta la posizione iniziale dello sprite **Ball**.
.. image:: img/ball_script_ball1.png
* Usa un blocco [if else] per verificare se la distanza è inferiore a 15. Se vero, sposta lo sprite **Ball** in alto di 10 passi, dato che la sua direzione è impostata a 0.
.. image:: img/ball_script_ball3.png
* Altrimenti, lascia cadere lo sprite **Ball**, limitando la sua coordinata Y a un minimo di -100, regolabile per apparire come se stesse atterrando sullo sprite **Bowl**.
.. image:: img/ball_script_ball4.png
* Scrivi l'interazione in cui lo sprite **Ball**, toccando lo sprite **Line**, registra la sua posizione Y nella variabile **ball_coor** e trasmette un messaggio **bling**.
.. image:: img/ball_script_ball5.png
4. Scripting per lo sprite **Star**
------------------------------------
* Inizialmente nascondi lo sprite **Star** quando si clicca la bandiera verde. Alla ricezione del messaggio **Bling**, clona lo sprite **Star**.
.. image:: img/ball_script_star1.png
* Imposta la posizione del clone e gli effetti sonori per sincronizzarli con la posizione dello sprite **Ball**.
.. image:: img/ball_script_star2.png
* Consentigli di ruotare tra -80 e 80 gradi casualmente.
.. image:: img/ball_script_star3.png
* Regola l'aspetto e il comportamento dello sprite **Star** come necessario per migliorare l'effetto visivo.
.. image:: img/ball_script_star4.png
La programmazione è completa. Clicca la bandiera verde per eseguire lo script e vedere se soddisfa le tue aspettative.
.. raw:: html