Imparare a programmare con scratch il gioco Boat Race

Cosa farai

In questo progetto potrai imparare a programmare con Scratch un gioco in cui il giocatore deve far arrivare una barca sulla spiaggia di un’isola deserta attraverso il movimento del puntatore del mouse.

Abbiamo preparato per te una risorsa che contiene lo sfondo e lo Sprite presenti nella figura precedente; la puoi scaricare facendo click qui.

Salva il file sul tuo computer. Poichè si tratta di un file compresso (BoatRace.sb2_.zip), decomprimilo, in modo da avere a disposizione il file BoatRace.sb2. Fai click su questo file per lanciare il progetto di Scratch:

Il movimento della barca

All’inizio del gioco la barca deve trovarsi nell’angolo in basso a sinistra dello schermo e deve essere rivolta verso l’alto.
Se scegliamo come posizione iniziale quella di coordinate (-190, -150), ci basterà scrivere:

I movimenti successivi dovranno rispecchiare i movimenti del puntatore del mouse usato dal giocatore.
Per far puntare la barca verso il puntatore del mouse abbiamo a disposizione il blocco punta verso puntatore del mouse:

Lancia il programma e muovi il mouse per vedere se la barca segue il puntatore sullo schermo.

Cosa succede se la barca va contro al puntatore del mouse?
Prova a farlo accadere.

La barca si blocca e continua a cambiare direzione. Non dovrebbe essere una sorpresa; abbiamo detto a Scratch che la barca deve muoversi in direzione del puntatore, e, quindi, non appena lo supera, si gira… ma appena si muove lo supera di nuovo e quindi si gira un’altra volta, e così via.
Per evitare che succeda, dobbiamo dire a Scratch di muovere la barca solo se si trova a una certa distanza dal puntatore del mouse, per esempio a una distanza maggiore di 5 pixel:

Prova a lanciare il programma e a fare in modo che la barca raggiunga il puntatore del mouse.
Cosa succede adesso?

La barca si ferma e aspetta un eventuale spostamento del puntatore per riprendere a muoversi. Infatti, quando la distanza della barca dal puntatore è minore di 5 pixel, la condizione del blocco se non si verifica, e quindi non vengono eseguite le istruzioni al suo interno… che sono proprio quelle che dicono a Scratch di muovere la barca.

L’incidente

Finora hai potuto imparare a programmare con Scratch un gioco nel quale la barca può muoversi liberamente in qualsiasi zona dello schermo; può anche passare attraverso le barriere di legno! In questi casi vorremmo invece che la barca si rompesse.
Ciò vuol dire che, quando la barca va contro alle barriere di legno deve cambiare costume e “rompersi”; dobbiamo quindi creare un secondo costume per la barca che rappresenti la barca distrutta.

    Per farlo:

  1. Fai click sull’etichetta Costumi;
  2. fai click con il tasto destro del mouse sul costume e seleziona Duplica
  3. Dai il nome incidente al nuovo costume;
  4. fai click sullo strumento seleziona
  5. seleziona piccole aree della barca e spostale e ruotale finché ottieni una barca dall’aspetto rotto

Ora dobbiamo dire a Scratch che, se la barca va contro alle barriere di legno, deve visualizzare il costume incidente:

La barca deve poi tornare al punto di partenza con il suo costume originale. Possiamo anche aggiungere un Nooooo!!!! per sottolineare che la barca ha urtato le barriere:

Lancia il programma per vedere se tutto funziona correttamente.

Vittoria!

Il giocatore vince quando riesce a portare la barca sulla spiaggia dell’isola deserta.
Dobbiamo quindi dire a Scratch di dare un segnale di vittoria e fermare il gioco quando la barca tocca la spiaggia… ossia quando la barca tocca il colore della spiaggia:

Lancia il programma per vedere se tutto funziona come ti aspetti.

Effetti sonori

Una piccola miglioria che possiamo apportare facilmente al gioco è l’aggiunta di effetti sonori che vengano prodotti quando la barca tocca le barriere e quando arriva sull’isola.

    Per aggiungere un suono allo Sprite:

  1. fai click sull’etichetta Suoni;
  2. fai click sull’icona Scegli un suono dalla libreria;
  3. Seleziona uno dei suoni presenti nella libreria e premi il pulsante ok

Per associare un suono a un’azione possiamo usare il blocco produci suono:

Lancia il programma per vedere se tutto funziona correttamente.

Tempo

Vorresti imparare a programmare con Scratch come far sì che il gioco registri il tempo che il giocatore impiega per portare la barca sull’isola. Naturalmente dovrà essere il più veloce possibile!

Per tenere in considerazione il tempo impiegato dobbiamo creare una nuova variabile tempo.

    Per farlo:

  1. Fai click su Variabili e Liste e premi il pulsante Crea una Variabile;
  2. Scrivi tempo nel campo di testo Nome della variabile, spunta la casella Per tutti gli Sprite e premi il pulsante Ok;


Quando inizia il gioco, tempo dovrà assumere il valore 0. Questo valore dovrà poi aumentare progressivamente fino alla conclusione del gioco.
Per farlo, scrivi questo programma nella pagina degli Script dello sfondo:

Poiché abbiamo usato il blocco attendi 0.1 secondi, il tempo verrà espresso in decimi di secondo.

Lancia il programma per vedere se tutto funziona correttamente.

Ostacoli e potenziamenti

Al momento, questo gioco è fin troppo facile: aggiungiamo qualcosina per renderlo più interessante.

Per prima cosa, aggiungiamo alcuni “potenziamenti” al gioco per velocizzare la barca.
Per farlo, modifica lo sfondo disegnando alcune frecce bianche:

Quando la barca tocca le frecce, la sua velocità aumenta:

Lancia il programma per vedere se tutto funziona correttamente.

Ora aggiungiamo un cancello rotante che la barca dovrà evitare.
Devi creare un nuovo Sprite cancello dello stesso colore delle barriere di legno:

Quindi, devi farlo ruotare:

Poiché il cancello è dello stesso colore delle barriere di legno, se la barca gli va contro, il gioco riprenderà dall’inizio.

Lancia il programma per vedere se tutto funziona correttamente.

Nel caso il cancello non ruoti attorno al suo asse centrale, fai click sull’etichetta costume, quindi sull’icona definisci il centro del costume, e infine fai click nel centro del cancello:

Sfida: ancora più ostacoli!

Saresti in grado di aggiungere ancora più ostacoli al tuo gioco?
Ecco alcune idee che potresti provare a sviluppare:

  1. Potresti aggiungere delle alghe allo Sfondo e fare in modo che la barca rallenti quando le tocca:

    Suggerimento: potresti usare il blocco attendi:
  2. Potresti aggiungere un oggetto che si muove… come un tronco o uno squalo:

    Suggerimento: potresti usare i blocco in figura:

    Nel caso il nuovo Sprite fosse di un colore diverso da quello delle barriere di legno, allora dovresti usare anche:

Sfida: un’altra barca!

Finora hai visto quanto è facile imparare a programmare con Scratch un gioco con una sola barca. Saresti in grado di modificarlo in modo che si possa giocare in due?

    Di seguito alcuni suggerimenti:

  1. Dovrai creare una nuova barca per il secondo giocatore. Ti basterà copiare la barca del primo giocatore e cambiare il suo colore:
  2. Fai in modo che la seconda barca parta da un punto diverso dalla prima; ti servirà il blocco:
  3. Il programma relativo alla seconda barca dovrà essere simile a quello della prima. L’unica differenza sarà che il movimento non dovrà seguire il mouse, ma essere conseguenza della pressione dei tasti freccia della tastiera. Avrai quindi bisogno di blocchi del tipo:

This learning resource is provided for free by the Raspberry Pi Foundation under a Creative Commons licence.
Find more at raspberrypi.org/resources and github.com/raspberrypilearning.