Da WIKI CoderDojo Firenze.

Gioco Mostro Mangia Palla

L'obiettivo del gioco è quello di far mangiare al mostro più palle possibile in un periodo di tempo prederminato. Il mostro viene controllato tramite lo spostamento del mouse.

Con questo gioco si dimostra come gestire in modo elementare il movimento di uno sprite e come gestire l'interazione tra sprite diversi. Viene inoltre dimostrato l'uso del cronometro e dei segnali per far comunicare tra di loro diverse componenti del gioco.

Il gioco può essere scaricato dall'archivio kata sia nella versione base che nella versione avanzata descritta in appendice.

Passo 1: Creazione dello sprite mostro, algoritmo di movimento

Tramite il bottone "Seleziona nuovo sprite da file" scegliere il protagonista del gioco dalla galleria di personaggi messa a disposizione dal programma. Sono particolarmente indicati i personaggi della sezione Fantasy.

File:000_nuovo_sprite_da_file.png

Ricordarsi che il mostro deve essere lasciato libreo di ruotare.

Si può passare quindi subito a realizzare lo script di movimento del mostro: un semplice programma che insegue costantemente il mouse e si ferma quando lo raggiunge.

File:001_script_movimento_mostro.png

Da notare che l'istruzione "porta dimensione al 50%" potrebbe non essere necessaria o potrebbe avere bisogno di essere impostata a una percentuale diversa a seconda della dimensione del personaggio scelto.

Passo 2: Preparazione degli sfondi dello stage

Lo stage è costituito da due sfondi: il principale sfondo1 vuoto è quello che viene mostrato durante il gioco, il secondo (sfondo2) appare alla fine del gioco allo scadere del cronometro per indicare lo stato di partita terminata.

Come sfondo1 si può utilizzare quello bianco che è presente di default, occorre quindi realizzare solo sfondo2, tramite i seguenti passi:

  • Andare nella sezione sfondi e duplicare lo sfondo presente tramite il pulsante Copia

File:003_crea_e_modifica_sfondo.png

  • Modificare lo sfondo a piacimento, l'importante è che si legga chiaramente una scritta con indicata la condizione di fine gioco (Game Over)

File:004_sfondo_game_over.png

Dare al secondo sfondo il nome fine

Passo 2: Script per lo stage, variabile punti e cronometro

Adesso che gli sfondi sono pronti, si può passare alla scrittura dello script.

Per prima cosa occorre introdurre una nuova variabile di nome punti. Per fare questo si va nella sezione arancione Variabili e si clicca su nuova variabile:

File:005_creazione_nuova_variabile.png

Si può passare quindi alla scrittura dello script vero e proprio. All'avvio si inizializza la variabile a zero e si fa partire il cronometro. Successivamente si entra in un loop "per sempre" e si aspetta che il cronometro abbia superato una soglia (per esempio 30 secondi). Allo scadere del cronometro si invia un segnale di STOP a tutti, si passa allo sfondo fine e si ferma il programma.

File:006_script_stage.png

In questa porzione di codice si capisce come funzionano i segnali, concetto che merita di essere descritto bene dal mentor per far capire come sia possibile far comunicare tra di loro componenti diversi del programma. Nel nostro caso, la generazione del segnale STOP viene fatta per far scomparire dallo schermo gli sprite alla fine del gioco. Per realizzare l'operazione per lo sprite già realizzato (il mostro) è quindi sufficiente aggiungere le seguenti linee nella sezione script dello sprite Mostro:

File:007_stop_nascondi.png

Passo 3: la prima palla

L'obiettivo del gioco è far mangiare al mostro quante più palle possibile. Nella versione iniziale del gioco si utilizzano due palle. Prima si realizza il programma completo per una, dopo sarà sufficiente copiarlo sulla seconda. Lo script della palla prevede di farla apparire in una posizione casuale e ogni tanto spostarla. Quando il mostro la tocca, la palla sparisce (viene "mangiata"), per riapparire più tardi in un'altra posizione casuale. Ogni volta che una palla viene mangiata la variabile globale punti viene incrementata di uno. Anche gli sprite che raffigurano le palle devono sparire dallo schermo alla fine del gioco; questa cosa viene ottenuta esattamente come per lo sprite del mostro tramite la gestione del segnale STOP.

Per creare uno sprite palla scegliere sempre il pulsante "Seleziona nuovo sprite da file" e selezionare un tipo di palla nella sezione "Things" delle immagini predefinite del programma.

Lo script completo per una palla è il seguente.

File:008_script_per_sprite_palla.png

NOTA: per rendere più divertente il gioco, si fa produrre un suono alla palla tutte le volte che viene mangiata. Per poterlo fare è necessario prima associare un suono allo sprite. Per fare questo si può importare un suono preesistente tramite il tasto Importa presente nella sezione Suoni dello sprite oppure, se il computer lo permette se ne può far registrare uno direttamente al bambino tramite il tasto Registra.

Passo 4: la seconda palla

Per creare la seconda palla si segue la stessa procedura utilizzata per la prima (scegliendo magari un'immagine diversa). Siccome la seconda palla si deve comportare esattamente come la prima si copia il programma scritto per la prima semplicemente trascinandolo le varie componenti dello script sopra lo sprite della seconda palla.


Appendice: esercizi e estensione del gioco

Come esercizio si possone realizzare le seguenti estensioni del gioco:

  • Introdurre un sprite che ostacoli il movimento del mostro. Anche questo sprite si posiziona sullo schermo casualmente come le palle. Il contatto con questo elemento fa però perdere punti al mostro e ne ostacola il movimento
  • Fare un maggior uso dei messaggi
  • Introdurre una variabile tempo per mostrare quanto tempo manca al termine del gioco.

Versione estesa: script dello stage:

File:012_script_stage_versione_evoluta.png

Versione estesa: script del mostro:

File:009_mostro_script_versione_evoluta.png

Versione estesa: script della palla:

File:010_script_palla_versione_evoluta.png

Versione estesa: script dell'ostacolo:

File:011_script_ostacolo.png