Realizziamo un acquario simulato in scratch

La programmazione degli eventi casuali in scratch ci porta a tentare di realizzare una app ludica come la simulazione di un acquario.

Le app di simulazione sono interessanti poichè esse ci consentono di variare adeguatamente il livello di difficoltà. In questo tutorial vogliamo vedere se riusciamo a realizzare un acquario che includa tante cose come i pesci che si muovono, le bolle d’aria, animazioni di sfondo, altri oggetti che si muovono e cambiano aspetto nel tempo. Per fare ciò occorre molta creatività e molta capacità di programmazione per passare dall’idea al lavoro finito. Iniziamo con una immagine di sfondo che rappresenta l’acquario.

Poi cerchiamo degli sprite adeguati ed infine l’audio di fondo.

Ecco i nostri acquisti.

Nello specifico abbiamo trovato uno sfondo simpatico, degli sprite che riguardano dei pesci, degli audio associati allo sfondo che riguardano i suoni da riprodurre. Adesso occorre programmare i personaggi, ridurli, metterli in movimento e animarli. Se possibile introdurremo elementi di casualità sulle dimensioni e sulla velocità dei movimenti così da creare un acquario suggestivo e realistico. Andremo avanti per gradi. Proviamo ad animare un personaggio, esso deve muoversi liberamente e autonomamente avanti e indietro rimbalzare alle pareti e tornare. Magari riprodurre i suoni che sono anche incorporati. Per prima cosa aggiungo un suono di sfondo al nostro sfondo grafico:

Successivamente scriviamo un codice che consente di riprodurre il suono anche in modo casuale. Come è possibile vedere, stiamo realizzando un ciclo senza fine che riproduce il suono delle bolle in continuazione. Introduciamo un tempo di attesa casuale in modo da generare un certo realismo. Tutto ciò scatta all’avvio dell’applicazione.

Adesso occupiamoci dei pesci. Ho inserito uno sprite che in sè riunisce 4 diversi costumi con 4 diversi pesci. L’idea è quella di effettuare un clone dello sprite con costume a caso e se vogliamo dimensione a caso e velocità di movimento a caso. Il pesciolino deve rimbalzare ai bordi e quindi tornare indietro simulando un movimento diciamo continuo. e opzioni di casualità ci consentono di creare un po’ di realismo sulle dimensioni, sulle forme, sulla direzione e la velocità.

 

La clonazione per noi è importante perchè ci consente di impostare tutto su un solo sprite ed inoltre di scrivere il codice una sola volta. Lo sprite in questione è composto da 4 costumi diversi ognuno avente come nome un numero in modo da poter passare da un costume all’altro anche in questo caso in modo casuale, scegliendo il nome come numero a caso.

Il codice qui di seguito consente di clonare 10 copie dello stesso sprite che agiranno autonomamente. Vedremo poi, grazie all’uso di strumenti casuali come queste saranno diverse sia esteticamente sia nel comportamento.  
Successivamente usiamo l’evento che scatta all’atto della clonazione. Esso quindi potrà contenere istruzioni specifiche per il singolo sprite clonato.

Vediamo, quindi, che l’uso di numeri casuali ci consente di gestire le clonazioni come fossero elementi tutti diversi. Ecco il codice che potremmo scrivere per l’elemento clonato-
Notiamo che per prima cosa esso viene spostato in una posizione a caso, poi viene ruotato di un angolo a caso, poi assume le sembianze di un costume a caso (qui potremmo metterne anche tanti altri). Infine anche la dimensione assume un valore a caso in modo da non avere pesci tutti della stessa grandezza. Il movimento continuo viene garantito da un ciclo non finito che fa eseguire allo sprite un numero di passi casuali, quindi velocità variabile a caso e il rimbalzo quando tocca il bordo ovvero i limiti dell’acquario. E’ chiaro che più elementi di casualità inseriamo, maggiore diventa il grado di realismo che diamo alla scena. Ho trovato altri sprite di pesci nella libreria e li ho inseriti per arricchire l’acquario.

Le varianti potrebbero essere tante come ad esempio l’introduzione di bolle di varie dimensioni che risalgono verso l’alto con un percorso casuale o l’inserimento di sprite per i pesci che siano disegnati manualmente e scansionati in logica STEM. si potrebbe anche gestire il ciclo di vita dei pesci e dopo un po’ farli sparire per farne clonare altri oppure sviluppare un gioco dove i pesci grandi mangiano i piccoli rincorrendoli mentre essi si muovono in modo casuale. Ecco come si mostra l’acquario al completo

Il codice qui di seguito consente di clonare 10 copie dello stesso sprite che agiranno autonomamente. Vedremo poi, grazie all’uso di strumenti casuali come queste saranno diverse sia esteticamente sia nel comportamento.  

10516total visits,2visits today