Questo tutorial ti guiderà passo passo nella costruzione di un gioco con Scratch
Questo tutorial ti guiderà passo passo nella costruzione di un gioco con Scratch
Come prima cosa creiamo il nostro Sprite e lo spazio in cui ci muoveremo. In questo gioco andremo a caccia di robot nello spazio, quindi il nostro Sprite sarà un robot e come sfondo sceglieremo un pianeta lontano.
Dopo aver eliminato lo Sprite standard di Scratch (il gattino), andremo a selezionare il nostro nuovo Sprite (il robot) dalla galleria di Scratch.
Ora dobbiamo scegliere il nostro sfondo. Clicchiamo sull'icona dello sfondo in basso a destra e selezioniamo il nostro pianeta spaziale.
Ora che abbiamo creato il nostro Sprite e il nostro Sfondo, dobbiamo animare il robot facendolo comparire e scomparire ogni volta in un posto diverso. Infatti il nostro robot non vuole farsi catturare quindi continuerà a spostarsi.
Per animare lo Sprite dobbiamo scrivere il codice con i vari comandi.
I primi comandi faranno apparire il robot per 1 secondo, scomparire per 1 secondo, riapparire per 1 secondo e così via.
Siccome vogliamo che il gioco non finisca subito, dobbiamo utilizzare la funzione "per sempre", così che tutti i comandi che inseriremo all'interno della funzione "per sempre" si ripetano all'infinito finché non gli diremo noi di fermarsi.
Come prima cosa dobbiamo usare il comando per far iniziare il gioco. Andiamo sulla categoria Situazioni e trasciniamo il comando "Quando si clicca su *bandiera verde*" nell'area di codice:
A questo punto dobbiamo creare l'animazione per far comparire e scomparire il robot. Però prima, dobbiamo inserire il comando "per sempre" scegliendolo dalla categoria Controllo:
Ora, all'interno di per sempre, andiamo ad inserire i comandi di comparsa e scomparsa.
Scegliamo "nascondi" dalla Categoria Aspetto e gli diciamo di nascondersi per 1 secondo con il comando "attendi 1 secondo" che scegliamo dalla categoria Controllo:
Ora che abbiamo fatto scomparire il robot, dobbiamo farlo ricomparire, utilizzando il comando "mostra" che prendiamo nella categoria Aspetto. Gli diciamo di mostrarsi per 1 secondo con il comando "attendi 1 secondo" prima di scomparire di nuovo:
Prima di passare alla fase successiva, controlliamo che il programma funzioni, cliccando sulla bandierina verde di avvio. Il robot dovrebbe apparire e scomparire:
Se il robot scomparisse e riapparisse sempre nello stesso punto, sarebbe troppo facile per noi catturarlo, quindi dobbiamo fare in modo che ogni volta che scompare, riappara poi in una posizione diversa a caso.
Per farlo ci basta aggiungere al codice che abbiamo già scritto un nuovo blocco chiamato "raggiungi posizione scelta a caso" che troviamo nella categoria Movimento. Lo andiamo ad inserire tra i comandi nascondi e mostra:
Questo gioco prevede che il giocatore catturi il robot facendo click sullo Sprite mentre si muove in modo casuale sulle schermo. Per fare questo, dobbiamo inserire un altro blocco di comandi.
Dalla categoria Situazioni scegliamo il comando "quando si clicca questo sprite" e lo trasciniamo sull'area d codice, come mostrato qui sotto:
Ora dobbiamo dire al programma cosa deve fare quando si clicca sullo Sprite, cioè quando catturiamo il robot.
Quello che vogliamo che succeda è che quando catturiamo il robot, il robot scompaia; ma siccome non è semplice capire se il robot sia stato catturato, diciamo al programma di produrre anche un suono.
Come abbiamo visto prima, il comando nascondi si trova nella categoria Aspetto, mentre il comando per produrre un suono si trova nella categoria Suono. All'interno del comando "riproduci suono" scegliamo quello che ci piace di più. Vi ricordate come si selezionano i suoni? Dalla finestra Suoni in alto a sinistra, di fianco alle finestre Codice e Costumi.
Noi abbiamo scelto il suono "computer beeps2":
A questo punto il gioco è quasi finito e siamo pronti a giocare. Ma che gioco è se non c'è un punteggio?
Andiamo quindi ad inserire il comando che ci farà guadagnare un punto ogni volta che catturiamo il robot.
Per inserire il punteggio, dobbiamo andare sulla categoria Variabili e creare la nostra variabile "punteggio" così come illustrato nelle immagini qui sotto:
Cliccando su "Crea una Variabile", si aprirà una nuova schermata in cui andremo ad aggiungere la nostra variabile "punteggio". Confermiamo cliccando OK:
Ora che la nostra Variabile "punteggio" è stata creata, scegliamo tra le opzioni il comando "cambia *punteggio* di 1" e lo trasciniamo sull'area di codice, unendolo al blocco di codice che abbiamo creato poco fa.
Ora il giocatore guadagnerà un punto ogni volta che catturerà il robot.
Ultima cosa da fare prima di iniziare a giocare è inserire il comando che resetta il punteggio ogni volta che si inizia a giocare. Il comando da utilizzare è "porta punteggio a 0" che troviamo nella categoria Variabili.
Inseriamo questo comando sotto quello di avvio "Quando si clicca su *bandiera verde*":
Per rendere il gioco ancora più divertente e per provare a sfidare i tuoi amici, fratelli, genitori, aggiungiamo la durata del gioco.
Per ora dobbiamo premere la bandierina verde per iniziare una nuova partita, ma non abbiamo fissato in alcun modo la sua fine. Vediamo come far durare il gioco un tempo prefissato.
Supponiamo che vogliamo far durare una partita 15 secondi: dobbiamo fare in modo che il nostro timer inizi a 15 secondi, che il numero di secondi diminuisca progressivamente e che, quando arriva a 0, il gioco venga interrotto. Per farlo dobbiamo creare una nuova Variabile che chiameremo "tempo" e aggiungerla al nostro codice.
Creiamo la variabile tempo nello stesso modo in cui abbiamo precedentemente creato la variabile punteggio:
e la trasciniamo nella nostra area di codice, dopo aver aggiunto il comando "quando si clicca su *bandiera verde*". Infatti vogliamo che il timer del tempo parta ogni volta che iniziamo il gioco, quindi ogni volta che clicchiamo sulla bandiera verde.
Dobbiamo modificare i secondi del timer da 0 a 15:
Come facciamo a fare il modo che il timer da 15 secondi vada a zero?
Provate a pensarci e a farlo da soli prima di vedere come lo abbiamo fatto noi.
Ci siete riusciti?
Se ci siete riusciti da soli, siete stati bravissimi! Altrimenti proviamo a farlo insieme.
Il primo step è dire al programma fino a quando deve contare, in questo caso al contrario, visto che si tratta di un timer. Vogliamo che il gioco duri 15 secondi, quindi il timer partirà da 15 ed arriverà a zero. Per fare questo dobbiamo inserire il comando "ripeti fino a quando" che troviamo all'interno della categoria Controllo:
A questo punto dobbiamo dirgli fino a quando deve ripetere, cioè fino a quando deve contare all'indietro.
Siccome dobbiamo fare un'operazione di calcolo (contare all'indietro da 15 a 0), dobbiamo utilizzare un operatore. Andiamo quindi sulla categoria degli Operatori, scegliamo l'operatore "uguale a" e lo inseriamo all'interno del comando del ripeti fino a quando modificando il numero da 50 a 0:
Ora dobbiamo dirgli "che cosa" deve andare a zero. Quindi andremo a prendere la nostra solita Variabile "tempo" e la inseriremo all'interno dello spazio bianco:
Perfetto. Il nostro programma ora sa che deve partire da 15 secondi e deve arrivare a 0 secondi. Ma il nostro programma non è mai andato a scuola, quindi non sa cosa vuol dire "contare all'indietro". Noi invece, che abbiamo imparato le sottrazioni a scuola, sappiamo che "contare all'indietro" significa togliere ogni volta 1 dal numero che abbiamo. Quindi, dobbiamo insegnarlo al programma.
Come facciamo a parlare con il programma?
Con il codice!
Come prima cosa, dobbiamo dire al programma che vogliamo contare indietro 1 secondo alla volta; quindi andiamo su Situazioni, scegliamo il comando "attendi 1 secondo" e lo trasciniamo all'interno del comando ripeti, vedremo tra poco perchè lo inseriamo in questo comando:
Ora gli dobbiamo dire di togliere 1 secondo di tempo ogni volta. Il programma non conosce il comando "togli" oppure "sottrai", ma conosce la Variabile "cambia" e conosce la Variabile "tempo" che abbiamo creato prima, quindi dobbiamo dirgli di "cambiare tempo di -1", cioè togliere 1 secondo:
Perchè abbiamo inserito questi ultimi due comandi all'interno del comando "ripeti fino a quando"?
Li abbiamo inseriti all'interno del comando "ripeti fino a quando" perchè l'operazione di togliere 1 deve essere fatta ogni volta fino a quando il tempo non arriva a zero.
Ed è per questo motivo che il comando "ripeti fino a quando" è un comando definito "a ganascia" e si aspetta dei valori al suo interno.
L'ultimissima cosa che ci è rimasta da fare prima di iniziare a giocare (o tornare a giocare) è dire al programma cosa deve fare quando arriva al tempo zero. Al tempo zero il gioco finisce, quindi dovremo dirgli di fermare il gioco, utilizzando il comando "ferma tutto" che troviamo nella categoria Controllo:
Se vi siete accorti, in alto a sinistra dell'area di gioco sono apparsi il punteggio e il tempo: