Nel precedente articolo Dal problema alla soluzione: un videogioco per sensibilizzare sullo spreco energetico hai iniziato un viaggio alla scoperta di come si realizza un videogioco, ponendoti l’obiettivo di sensibilizzare i giocatori sui temi della sostenibilità energetica e del consumo responsabile.

Sei partito da un’idea e sei arrivato a una soluzione, analizzando una serie di piccoli problemi.

Ora è arrivato il momento di scrivere il codice che implementa questa soluzione e lo farai con Scratch: qui trovi il progetto completo.

Esaminiamo gli step uno alla volta.

Problema 1: una persona deve comparire all’interno di una delle tre stanze e accendere la luce in quella stanza e quella soltanto.

figura 1
Soluzione: la luce e il buio di una stanza sono costumi dello sprite Light panel. Quando lo sprite Light panel tocca lo sprite Person (figura 1) lo sprite Light panel passa al costume Yellow (la stanza si illumina).

Problema 2: le persone devono rimanere all’interno del perimetro dell’abitazione senza che si materializzino a ridosso dei muri - non è un videogioco di fantasmi!

figura 2
Soluzione: quando il personaggio viene clonato rimane nascosto e posizionato in una posizione casuale dentro le pareti dell’abitazione. Se la posizione causale è a ridosso di una parete (lo sprite tocca il colore Black delle pareti) il clone viene eliminato subito (figura 2).

Problema 3: quando il giocatore preme l’interruttore, la luce della stanza si spegne.

figura 3
Soluzione: quando il giocatore tocca la lampadina, lo sprite Ligth bulb invia un messaggio Switch off al Light panel corrispondente (figura 3).  
figura 4
Quando Light panel riceve il messaggio Switch off passa al costume Black (figura 4) e la luce si spegne.

Nota che il codice in realtà prevede il passaggio prima al costume Grey e poi a Black. Questo artificio si è reso necessario a causa del fatto che, quando lo sprite Person viene clonato, per una frazione di secondo tocca lo sprite Light panel con costume Black e, quando questo accade, il gioco termina con Game over (cfr . Problema 4 e figura 5): l'algoritmo interpreta questo evento (Person tocca colore Black) allo stesso modo con cui interpreta il gesto del giocatore che spegne la luce mentre la persona è ancora dentro la stanza. Se vuoi riprodurre questo comportamento indesiderato elimina dal codice di figura 4 il passaggio al costume Gray e passa direttamente al costume Black.

Si è trattato di un imprevisto che, a seguito del test, ha richiesto l’individuazione di una soluzione alternativa: non è detto che l’alternativa scelta sia l’unica o la migliore, ma ha sicuramente risolto il problema.

Problema 4: se il giocatore tocca la lampadina prima che la persona sia uscita il gioco finisce.

figura 5
Soluzione: quando il giocatore tocca il Light panel con costume Gray (la luce è spenta) invia il messaggio Game over allo sprite Game over (figura 5).

Problema 5: quando si accende la luce, parte il contatore dei consumi.

figura 6
Soluzione: il contatore di energia viene attivato ponendo la variabile Switch on a uno (figura 6).

Problema 6: quando il giocatore spegne la luce il contatore dei consumi si arresta.

figura 7
Soluzione: il contatore di energia viene fermato ponendo la variabile Switch on a zero (figura 7).

Problema 7: quando il cronometro arriva a zero il gioco termina e il contatore dei consumi mostra il consumo totale espresso in KWh.

figura 8

Soluzione: il contatore delle ore (Hours) viene decrementato di 1 unità ogni secondo. Quando arriva a zero invia il messaggio You win allo sprite You win e compare la scritta relativa (figura 8).

Test finale

Il gioco è terminato: puoi eseguire un test finale e sistemare gli ultimi dettagli. Non dimenticare di indicare nei “credits” eventuali risorse prese a prestito da altri autori.

E adesso cosa aspetti?!? Condividilo e gioca con i tuoi amici!!!

Next steps

Prova ora ad immaginare come il videogioco può essere ulteriormente migliorato e reso più accattivante.

Potresti inserire, ad esempio, una musica di sottofondo e dei suoni legati ad alcuni eventi che si verificano durante il gioco: ad esempio, quando si accende la luce o quando il videogioco termina a causa dell’errore del giocatore.

Potresti inserire una gestione delle vite per il giocatore. Ad esempio, il gioco finisce dopo il terzo errore (il giocatore ha spento la luce mentre la persona era ancora nella stanza) anziché alla prima occorrenza.

Per rendere più consapevoli i giocatori potresti inserire una schermata al termine del gioco che indica il consumo delle singole lampadine.

Oppure potresti dare la possibilità al giocatore di scegliere la tipologia di lampadina (a filamento o led) prima di iniziare il gioco, così che possa rendersi conto del differente consumo.

Aggiungi un po’ di elettronica

Arduino Uno

Conosci Arduino e Makey Makey? Perché allora non provi a utilizzarli per trasferire il tuo progetto da un mondo solo digitale al mondo reale?

Con Arduino e Scratch potresti, ad esempio, costruire il modellino della casa con le tre stanze, 3 lampadine e 3 interruttori e giocare il tuo videogame dal vivo!

Con Makey Makey e Scratch potresti costruire una console con 3 tasti di pasta modellabile a forma di lampadina e usarli come interruttori.

Pensaci un po’, sono sicuro che ti verranno in mente altre fantastiche idee!

Se non vuoi usare Scratch

Conosci già Scratch oppure non ti piace (seriamente?!?!) e vuoi esplorare un altro linguaggio di programmazione? Di seguito trovi alcuni suggerimenti.

Ti propongo una suddivisione per età, ma sentiti libero di esplorare tutti gli strumenti a qualsiasi età.

Dai 7 ai 12 anni:

mBlock
microbit

Dai 13 anni in su:

AppInventor
Thunkable
Arduino con Wiring
Python con Pygame