Da WIKI CoderDojo Firenze.

Gioco ACCOMETAGGIO PHILAE (mentor)

Questo gioco vuole essere un omaggio alla missione Rosetta dell'Agenzia Spaziale Europea e in particolare al lander Philae che nel novembre 2014 ci ha tenuto tutti con il fiato sospeso mentre atterrava su una cometa.

Scopo del gioco è quello di riuscire a far atterrare Philae su un punto preciso della superficie della cometa utilizzando un unico getto d'aria che fornisce una spinta verso il basso (esattamente come è avvenuto nella realtà!).

Per realizzare il tutto si è preso pesantemente spunto da un gioco messo online dalla BBC nei giorni dell'accometaggio di Philae.

Il gioco in formato Scratch 2.0 con il presente tutorial in formato PDF i immagini di supporto da utilizzare durante la riscrittura del progetto durante una sessione Coderdojo è scaricabile da [040_philae_gioco_scratch.zip apposito link] su questo wiki.


Creazione dello Stage (sfondo)

Ci vuole uno sfondo "spaziale" con in basso la rappresentazione del suolo della cometa. Come sfondo di partenza si può utilizzare ad esempio lo sfondo "Stars" presente nella libreria Scratch disegnando a mano (utilizzando pennello e riempimento varie linee di livello del suolo della cometa con un risultato simile a quello riportato nella figura qui sotto.

Errore nella creazione della miniatura: Impossibile salvare la miniatura nella destinazione

In alternativa si possono utilizzare gli sfondi di libreria "Space" o "Moon" in cui la superficie della cometa non ha bisogno di essere disegnata.



Preparazione del sito di atterraggio

Scegliere un punto della cometa alla sinistra e disegnare uno o due sprite costituiti da due cerchi circa concentrici di cui il più interno deve essere piccolo e di un colore ben riconoscibile. L'unico script associato a questo sprite è quello che all'avvio lo posiziona alle coordinate desiderate. Il risultato finale deve essere simile alla figura riportata nel seguito.

Errore nella creazione della miniatura: Impossibile salvare la miniatura nella destinazione

Ecco invece lo script (in fase di realizzazione potrebbe essere necessario ottimizzare le coordinate in base a quanto realizzato dal bambino).

Errore nella creazione della miniatura: Impossibile salvare la miniatura nella destinazione

Il lander Philae: disegno dello sprite

Eccoci al protagonista del nostro gioco, il lander Philae. Per prima cosa va disegnato o completamente a mano o utilizzando l'immagine fornita:

Errore nella creazione della miniatura: Impossibile salvare la miniatura nella destinazione

Se si decide di disegnarlo "a mano" si può andare di fantasia, disegnando un veicolo spaziale liberamente purché più o meno della giusta dimensione. Si può anche utilizzare lo sprite "Spaceship" presente nella libreria standard Scratch.

Il lander Philae: il movimento

Philae deve partire in alto a destra e scendere verso il sito di atterraggio senza colpirlo però perfettamente. Lo script è molto semplice. A parte la sezione iniziale in cui lo sprite viene posizionato alle coordinate appropriate, lo script è un semplice loop infinito in cui si cambiano le coordinate X e Y dei valori appropriati per percorrere il percorso desiderato.

Per rendere più realistico il gioco si utilizzano i seguenti accorgimenti:

  • All'inizio il lander parte con una dimensione ridotta (per esempio del 50%) e via via si ingrandisce in modo da dare l'illusione dell'avvicinamento. Per ottenere questo nel loop principale dello script oltre al cambio di coordinate si effettua un "cambio dimensione"
  • Per rendere più aleatorio (spiegare il significato della parola aleatorio ai bambini!) il moto, non cambiare le coordinate X e Y di un valore costante ma utilizzare la generazione di numeri casuali

Far "giocare" i bambini in modo da scegliere appropriatamente i valori di spostamento X e Y e di cambio dimensione in modo da ottenere il moto voluto. Alla fine lo script deve risultare qualcosa di simile a questo:

Errore nella creazione della miniatura: Impossibile salvare la miniatura nella destinazione

Il lander Philae: l'accometaggio

L'accometaggio può riuscire o fallire a seconda che Philae riesca o no a toccare la parte interna dello sprite colorato posto sulla superficie della cometa. Se invece si arriva sul bordo allora l'atterraggio è fallito. Per comunicare efficamente la riuscita o meno dell'atterraggio si possono utilizzare dei suoni, uno "brillante" e positivo per comunicare il successo, uno "disarmonico" per indicare l'insuccesso.

Errore nella creazione della miniatura: Impossibile salvare la miniatura nella destinazione

Se nella sezione precedente (movimento) si sono scelti opportuni parametri a questo punto l'accometaggio dovrebbe sempre fallire (Philae dovrebbe passare sempre sopra il sito di atterraggio e arrivare al bordo sinistro dello stage

Il lander Philae: il pilotaggio

A questo punto rimane da rendere interattivo il gioco aggiungendo la possibilità di pilotare Philae. Nella versione iniziale del tutorial si prevede solo la possibilità di attivare un getto sulla parte superiore del lander che fornisce allo stesso una spinta verso il basso.

Occorre quindi effettuare le seconde operazioni:

  • realizzare un secondo costume per lo sprite Philae con disegnato uno "sbuffo" sulla parte superiore. Replicare il primo costume e disegnare delle linee sopra il "tetto del lander". Qualcosa di simile all'immagine riportata sotto:
Errore nella creazione della miniatura: Impossibile salvare la miniatura nella destinazione
  • realizzare uno script di movimento che, all'interno di un loop infinito, controlla se viene premuto uno specifico tasto (per esempio freccia su o freccia giù) e se sì cambia Y di un numero generato a caso. Nello script vengono anche alternati i due costumi per dare l'illusione del funzionamento del propulsore. Durante l'accensione dei propulsori riprodurre anche qualche effetto sonoro (anche se a rigore nello spazio i suoni non si sentono!!).
Errore nella creazione della miniatura: Impossibile salvare la miniatura nella destinazione

Estensioni & Esercizi

Questo gioco si presta a varie modifiche ed esercizi fino a farlo diventare un clone del mitico Lunar Lander creato da Atari nel 1979, "One giant step for gamekind". Esiste anche un'interessantissima versione Scratch!