Un gioco fase per fase: BatCat

In questo articolo viene illustrata la creazione di un gioco fase per fase, dall’idea iniziale alle successive fasi realizzative.

Compatibilità sia con la versione 2.0 che con la nuova versione 3.0

Fase iniziale

  • Ideazione del gioco: descrizione
  • Scopo del gioco

Fase 1. Muovere lo sprite nello stage

  • Procedimento

Fase 2. Lanciare palle da baseball con lo sprite

  • Obiettivo 1: creare il nuovo sprite “palle da baseball
  • Obiettivo 2: ordinare a Scratch di eseguire dei cloni della palla da baseball

Fase 3. Comparsa dei pipistrelli da destra

  • Obiettivo 1: creare e programmare il nuovo sprite dei pipistrelli (comparsa ed eliminazione)
  • Obiettivo 2: far scomparire la palla al contatto con il pipistrello

Fase 4. Assegnare tre vite ai pipistrelli

  • Obiettivo 1: creare la VARIABILE “pipistrello_vita”
  • Obiettivo 2: assegnare tre vite
  • Obiettivo 3: far cambiare colore al pipistrello dopo ogni colpo

Fase 5. Inserire il punteggio

  • Obiettivo 1: creare la VARIABILE “PUNTI”
  • Obiettivo 2: programmare la VARIABILE “PUNTI”

Fase 6. Comparsa dei pipistrelli anche da sinistra

  • Obiettivo 1: creare e programmare il nuovo sprite (Bat3)
  • Obiettivo 2: apportare modifiche allo sprite Bat3
  • Obiettivo 3: programmare la palla da Baseball con nuove istruzioni
  • Obiettivo 4: programmare BATCAT con nuove istruzioni

Fase 7. Inserire una schermata Game Over e sfondi che cambiano durante il gioco

  • Obiettivo 1: creare la schermata Game Over
  • Obiettivo 2: programmare lo sprite “gameover”
  • Obiettivo 3: BATCAT deve inviare il messaggio
  • Obiettivo 4: inserire diversi sfondi
  • Obiettivo 5: programmare la successione degli sfondi ogni 10 secondi

Fase 8. Inserire una musica di sottofondo ed un effetto sonoro durante il Game Over

  • Obiettivo 1: inserire una musica di sottofondo
  • Obiettivo 2: programmare l’inizio della musica di sottofondo
  • Obiettivo 3: inserire un effetto sonoro durante il Game Over

Fase 9. Cambiare lo sfondo ogni due punti

  • Obiettivo 1: cancellare gli sfondi non necessari
  • Obiettivo 2: programmare il cambiamento dello sfondo ogni due punti
  • Obiettivo 3: far inviare il messaggio “punto_fatto”ai pipistrelli

Fase 10. Inserire livelli di gioco

  • Obiettivo: passare al livello successivo ogni 14 punti (ogni 7 sfondi)

Fase 11. Programmare la velocità dei pipistrelli

  • Obiettivo: aumentare la velocità dei pipistrelli ad ogni livello

Fase 12. Creare una intro

Fase iniziale

Ideazione del gioco: descrizione

Il gatto Scratch è un supergatto: è in grado di volare e ama il baseball. Noto tra i suoi amici come BATCAT, Scratch ha un solo punto debole: la paura dei pipistrelli che da tempo hanno invaso il suo paese. Al solo contatto con i pipistrelli Scratch perde ogni potere e cade in un sonno profondo. Solo chi pronuncia la lettera iniziale del suo nome di battaglia (lettera B) può risvegliarlo.

Scopo del gioco

Aiutare BATCAT a liberarsi dal maggior numero possibile di pipistrelli che compaiono alla sua destra e alla sua sinistra; non si tratta di un’impresa facile: dopo ogni notte i pipistrelli diventano sempre più veloci.

Fase 1. Muovere lo sprite nello stage

In questa fase iniziale il personaggio viene programmato per essere mosso con le frecce della tastiera: premendo la freccia destra Scratch si volta verso destra e avanza, premendo la freccia sinistra si volta verso sinistra e avanza, premendo la freccia su si dirige in alto, premendo la freccia giù si dirige in basso.

Procedimento

  1. Si comincia eliminando lo sprite iniziale e inserendo un personaggio più adeguato al gioco: nella lista degli Sprite cliccare con il tasto destro del mouse sulla thumbnail (immagine ridotta, anteprima) dello sprite iniziale per cancellarlo e sceglierne uno nuovo dalla libreria (Cat1 Flying).
  2. Selezionare il nuovo sprite Cat1 Flying.
  3. Selezionare il tab degli Script.
  4. Cliccare sulla paletta gialla di Controllo e trascinare nella Scripts Area il blocco giallo “se...allora”.

Siccome le frecce per muovere lo sprite sono quattro, con il tasto destro del mouse bisogna duplicare il blocco per quattro volte.

  1. Cliccare sulla paletta azzurra dei Sensori, trascinare nella Scripts Area il blocco “tasto...premuto”.
  2. Duplicare e inserire in ogni blocco giallo di controllo il blocco azzurro dei Sensori. “tasto...premuto”.
  3. In ogni blocco azzurro dei Sensori selezionare dalla tendina le opzioni “freccia destra”, “freccia sinistra”, freccia su”, “freccia giù”.
  4. Nel caso del movimento a destra occorre far rivolgere Scratch verso destra inserendo il blocco blu di Movimento “punta in direzione 90”: cliccando infatti sulle info della thumbnail dello sprite è possibile individuare tre tipi di rotazione e selezionare quella centrale, cioè quella con cui lo Sprite si ribalta a sinistra o a destra dell’asse verticale parallelo all’asse y.
  5. Dopo aver inserito il blocco blu “punta in direzione” inserire il blocco blu di Movimento “fai...passi”, tenendo conto che maggiore è il numero dei passi maggiore sarà la velocità di spostamento dello sprite.
  6. Seguire un comportamento analogo anche per la direzione sinistra.
  7. Per muovere il personaggio verso l’alto o verso il basso non è necessario farlo ruotare ma basta inserire il blocco blu di Movimento “cambia y di...”
  8. Dopo aver creato 4 blocchi gialli di Controllo “se...allora”, bisogna fare in modo che lo sprite si muova ad ogni pressione dei tasti freccia: dalla paletta gialla di Controllo selezionare il blocco “per sempre”, trascinarlo nella Scripts Area e inserire al suo interno i precedenti blocchi. In tal modo i blocchi interni eseguiranno con un ciclo continuo (per sempre) il comando ad essi associato.
  9. Inserire ora un blocco che faccia partire i comandi quando si clicca sulla bandiera verde presente sullo stage in alto a destra: cliccare sulla paletta ocra delle Situazioni, trascinare "quando si clicca su bandierina verde” nella Scripts Area sopra il blocco giallo “per sempre”.

Cliccare sulla bandierina per verificare che il programma venga eseguito correttamente.

Fase successiva: fare in modo che Scratch lanci palle da baseball alla pressione di un tasto (barra spaziatrice).

Fase 2. Lanciare palle da baseball con lo sprite

In questa fase si programma il gioco in modo che Scratch lanci delle palle da baseball (nuovo sprite) ad ogni pressione della barra spaziatrice; le palle da baseball dovranno quando arrivano sul bordo dello stage.

Obiettivo 1: creare il nuovo sprite “palle da baseball”

Si sceglie il nuovo sprite dalla libreria:

  1. Selezionare lo sprite Baseball dalla libreria e cliccare su OK: lo sprite compare nello Stage.
  2. Ridurre le dimensioni della palla da baseball: con il cursore del mouse dirigersi sulla barra grigia dei menu, osservare le 5 icone dopo le scritte File, Modifica, Suggerimenti e Info, cliccare sull’icona con le 4 frecce diagonali rivolte al centro, dirigersi con il puntatore del mouse sulla palla da baseball e cliccare su di essa fino a quando si raggiungono le dimensioni volute.
  3. Clonare la palla affinché possano essere lanciate più palle da baseball (cappello giallo di. Controllo “quando vengo clonato”).
  4. Far partire la palla dallo sprite (“raggiungi Cat1 Flying”).
  5. Rivolgere la palla nella direzione verso cui lo sprite sta volgendo il suo sguardo.
  6. Muovere la palla di 10 passi fino a quando non tocca il bordo dello stage.
  7. Eliminare la palla al contatto con il bordo dello stage.
  8. Aggiungere i blocchi “nascondi” e “mostra” in modo che, quando si comincia il gioco, la palla non si veda (blocco viola dell’Aspetto “nascondi”) e, quando viene clonata, la palla si mostra (blocco viola dell’Aspetto “mostra”).

Obiettivo 2: ordinare a Scratch di eseguire dei cloni della palla da baseball

  1. Cliccare sulla thumbnail dello sprite “Cat1 Flying”.
  2. Cliccare sul tab degli Script.
  3. Aggiungo i comandi che consentano di lanciare la palla mentre Scratch si muove: inserire un nuovo cappello dalla paletta arancione delle Situazioni “quando si clicca sulla bandiera verde”.
  4. Aggiungere un suono (suono “pop”) alla pressione della barra spaziatrice (blocco “se...allora” con “tasto spazio premuto”): premendo la barra spaziatrice Scratch produce un suono e crea il clone della palla da baseball; tra un lancio di una palla e l’altro il gatto attende 0.1 secondi.

Cliccare sulla bandierina per verificare che il programma venga eseguito correttamente.

Fase successiva: programmare i pipistrelli.

Fase 3. Comparsa dei pipistrelli da destra

In questa fase i pipistrelli devono comparire continuamente dal bordo destro dello stage; i pipistrelli devono scomparire quando vengono colpiti dalle palle lanciate da Scratch (da qui in poi denominato BATCAT).

Obiettivo 1: creare e programmare il nuovo sprite dei pipistrelli (comparsa ed eliminazione)

  1. Selezionare Bat2 dalla libreria e ridimensionarlo nello Stage con il comando adoperato nella fase precedente (4 frecce convergenti situate nella barra grigia dei menu).
  2. All’inizio del gioco (“quando si clicca su bandiera verde”) far comparire per sempre tanti cloni di pipistrelli (“crea clone di me steso”) con un intervallo di 4 secondi l’uno dall’altro (“attendi 4 secondi).
  3. All’inizio del gioco nella schermata iniziale non deve comparire nessun pipistrello: inserire il blocco viola “nascondi” subito dopo il cappello “quando si clicca sulla bandiera verde”.
  4. Ogni qualvolta il pipistrello viene clonato (cappello “quando vengo clonato”), il clone del pipistrello si deve mostrare.
  5. Inserire i blocchi che facciano comparire i cloni di Bat2 dalla parte destra dello stage : essendo l’estrema destra dello stage corrispondente al valore di 240 pixel sull’asse delle “x”, inserire un valore di “x” al di fuori dello stage (x: 260).
  6. I pipistrelli devono comparire a caso in verticale: siccome lo stage si estende in verticale (lungo l’asse delle “y”) da un valore di +170 a -170, far comparire i pipistrelli sull’asse delle “y” da un valore di 165 a -165 (non inserire 170 per evitare che compaiano pipistrelli “tagliati” dall’inquadratura).
  7. I pipistrelli si devono muovere verso sinistra, cioè devono puntare verso sinistra (“punta in direzione -90”) muovendosi in orizzontale a sinistra di 2px (“cambia x di -2”).
  8. Mentre si muovono a sinistra, se toccano la palla da baseball (se “sta toccando Baseball” allora…) devono sparire (“elimina questo clone”); per motivi di buffering occorre inserire un blocco di attesa tra il contatto con la palla da baseball e l’eliminazione del clone (“attendi 0.05 secondi”).
  9. Tener presente che i cloni si comporteranno come scritto nei punti precedenti solamente fino a quando saranno distanti dal bordo sinistro dello stage (“ripeti fino a quando”): quando infatti la loro posizione (posizione misurata nel loro baricentro) assumerà un valore di “x” minore di -240 (quando arriveranno in corrispondenza del bordo sinistro) i cloni verranno eliminati (“elimina questo clone”).

Cliccare sulla bandiera verde per osservare l’esecuzione del programma.

Osservare che il pipistrello scompare quando viene colpito dalla palla ma la palla invece no: la palla colpisce il pipistrello ma scompare solo quando tocca il bordo dello stage.

Obiettivo 2: far scomparire la palla al contatto con il pipistrello

  1. Cliccare sulla thumbnail dello sprite della palla da baseball (Baseball) e cliccare sul tab degli Script.
  2. Ripetere la clonazione non solo fino a quando la palla sta toccando il bordo ma anche fino a quando sta toccando Bat2: cliccare sulla paletta verde degli Operatori, trascinare nella Scripts Area il blocco verde “...e...”, inserire nella parte sinistra del blocco verde il sensore azzurro “sta toccando bordo” e nella parte destra del blocco verde il sensore azzurro “sta toccando Bat2”.

Cliccare sulla bandiera verde per verificare che i comandi vengano eseguiti correttamente.

Fase successiva: far sì che i pipistrelli non vengano eliminati subito al primo colpo ma almeno al terzo, in modo da rendere il gioco più avvincente.

Fase 4. Assegnare tre vite ai pipistrelli

In questa fase i pipistrelli vengono programmati in modo da sparire dallo stage solo dopo essere stati colpiti tre volte. Per raggiungere questo scopo occorre inserire un elemento che conti quante volte il pipistrello è stato colpito: occorre introdurre una VARIABILE.

Obiettivo 1: creare la VARIABILE “pipistrello_vita”

  1. Cliccare sulla thumbnail dello Sprite Bat2, cliccare sul tab degli Script e cliccare sulla paletta arancione delle Variabili.
  2. Cliccare su “Crea una variabile”, assegnare un nome (“pipistrello_vita”), selezionare “per tutti gli sprite” (in modo che si possa richiamare questa variabile da qualsiasi altro sprite nel caso in cui ce ne fosse bisogno), cliccare su OK.
  3. Dopo la comparsa della variabile nello stage, deselezionare nel tab degli Script la casella relativa alla variabile appena creata per tenerla nascosta.
  4. Osservare la comparsa di altri blocchi di comando relativi alla variabile appena creata.

Obiettivo 2: assegnare tre vite

  1. Assegnare ora tre vite ad ogni pipistrello: la variabile deve fare un conto alla rovescia a partire dal valore 3 (inserisco “porta pipistrello_vita a 3” subito sotto il cappello “quando vengo clonato”): il pipistrello ha ora tre vite e ogni volta viene colpito ne perde una (inserire “cambia pipistrello_vita di -1” sotto “se sta toccando Baseball allora”).
  2. Se la variabile che conta le vite del pipistrello rileva che il pipistrello non ha più vite (variabile arancione “pipistrello_vita” nel blocco verde degli Operatori “<1”) allora il pipistrello deve essere eliminato (inserire “elimina questo clone” nel blocco “se pipistrello_vita <1 allora”; il tutto è da inserire nel blocco “se sta toccando Badeball allora”).

Cliccare sulla bandiera verde e osservare: ogni pipistrello scompare solo dopo essere stato colpito tre volte; per rendere il gioco graficamente più interessante è possibile far cambiare colore al pipistrello dopo ogni colpo.

Obiettivo 3: far cambiare colore al pipistrello dopo ogni colpo

  1. Interrompere per un istante l’avanzata del pipistrello in modo che sembri “accusare il colpo” (“attendi 0.05 secondi” dopo “cambia pipistrello_vita di -1”).
  2. Modificare il colore del pipistrello facendolo diventare più chiaro (“porta effetto luminosità a 50” dalla paletta viola dell’Aspetto).
  3. Far tornare il pipistrello al colore originario: il pipistrello attende un istante (“attendi 0.05 secondi”) prima di ritornare al colore originario (“porta effetto luminosità a 0”).

Cliccare ora sulla bandiera verde per verificare che i comandi vengano eseguiti correttamente.

Fase successiva: inserire un contatore che tenga conto dei punti ottenuti ogni qual volta viene colpito un pipistrello.

Fase 5. Inserire il punteggio

In questa fase si rende visibile il punteggio nella parte superiore dello schermo; come nella fase precedente occorre introdurre una VARIABILE che conti il numero dei pipistrelli eliminati da BATCAT.

Obiettivo 1: creare la VARIABILE “PUNTI”

  1. Selezionare la thumbnail dello Sprite Bat2, selezionare il Tab degli Script e cliccare sulla paletta arancione della Variabili.
  2. Cliccare su “Crea una variabile”, assegnare un nome (“PUNTI”), selezionare “per tutti gli sprite”, cliccare su OK.

Obiettivo 2: programmare la VARIABILE “PUNTI”

  1. All’inizio del gioco il punteggio deve essere pari a zero: dalla paletta delle Variabili inserire il blocco arancione “porta PUNTI a 0” sotto il cappello ocra delle Situazioni “quando si clicca sulla bandierina verde”.
  2. Ad ogni pipistrello eliminato i punti devono aumentare di una unità: inserire il blocco “cambia PUNTI di 1” nel blocco giallo “se pipistrello vita <1 allora” prima del blocco giallo “elimina questo clone”.
  3. Per far sì che il punteggio sia visibile nello stage occorre selezionare il tab degli Script, cliccare sulla paletta delle Variabili e controllare che la casella della variabile PUNTI sia selezionata.
  4. Cliccando due volte sulla variabile comparsa nello stage, osservare come la variabile cambi di aspetto: è possibile scegliere tra tre diverse configurazioni (con il nome, senza nome, con lo slider; scegliere la configurazione senza nome).

Cliccare sulla bandiera verde per verificare che il programma venga eseguito correttamente.

Fase successiva: programmare l’ingresso dei pipistrelli anche da sinistra.

Fase 6. Comparsa dei pipistrelli anche da sinistra

In questa fase si programma sia l’ingresso di altri pipistrelli dalla parte sinistra dello stage sia la loro scomparsa a seguito del tocco della palla da baseball sia il comportamento di BATCAT durante il contatto; si crea un nuovo sprite e si danno nuove istruzioni alla palla da baseball.

Obiettivo 1: creare e programmare il nuovo sprite (Bat3)

  1. Inserire un nuovo sprite scegliendolo dalla libreria: selezionare Bat2 che, al momento dell’inserimento, cambia automaticamente il suo nome in Bat3.
  2. Copiare gli script di Bat2 in Bat3 (per copiare trascinare tutti i blocchi dalla Scripts Area di Bat2 nella thumbnail di Bat3 nella lista degli Sprite; per trascinare tutti i blocchi occorre sistemare il puntatore del mouse sul blocco a forma di cappello).
  3. Modificare la coordinata “x” di ingresso del pipistrello (“x:-260”) e il blocco “ripeti fino a quando” inserendo nell’operatore verde “posizione x>240”.
  4. Apportare modifiche anche nei sottostanti blocchi blu di Movimento dirigendo il pipistrello verso destra (“punta in direzione 90”) e cambiando il valore “x” presente nel blocco blu “cambia x di...” con valori positivi (i valori positivi di “x” si trovano infatti a destra).

Cliccando sulla bandierina verde ora i pipistrelli entrano sia da destra che da sinistra ma si comportano nello stesso e identico modo; per rendere il gioco meno monotono si possono cambiare alcune caratteristiche dello sprite Bat3.

Obiettivo 2: apportare modifiche allo sprite Bat3

  1. Rendere più rapido l’ingresso dei pipistrelli nello stage (modificare il blocco giallo della paletta di Controllo “attendi 4 secondi” in “attendi 3 secondi”)
  2. Rendere questi pipistrelli leggermente più veloci di quelli che entrano dal bordo destro (modificare il blocco blu della paletta Movimento “cambia x di 2” in “cambia x di 3”).

Obiettivo 3: programmare la palla da Baseball con nuove istruzioni

Tenendo presente che ora la palla da baseball deve scomparire anche quando colpisce lo sprite Bat3, bisogna assegnare nuove istruzioni alla palla da baseball:

  1. Cliccare sullo sprite “Baseball”, cliccare sul tab degli Script e cliccare sulla paletta gialla di Controllo.
  2. Modificare il blocco giallo “ripeti fino a quando” aggiungendo nella casella di destra un nuovo blocco verde degli Operatori “...o...” e inserendo in questo nuovo blocco sia il sensore azzurro “sta toccando Bat2” sia il sensore azzurro “sta toccando Bat3”.

Verificato il corretto funzionamento del programma si nota che al supergatto BATCAT non succede nulla quando viene toccato dai pipistrelli: il gioco va avanti all’infinito. Per far sì che il gioco finisca quando BATCAT viene toccato da un pipistrello occorre assegnare a BATCAT nuove istruzioni.

Obiettivo 4: programmare BATCAT con nuove istruzioni

  1. Cliccare sulla thumbnail dello sprite Cat1 Flying, cliccare sul tab degli Script e cliccare sulla paletta verde degli Operatori.
  2. Inserire nel blocco “per sempre” il blocco “se sta toccando Bat2 o se sta toccando Bat3”.
  3. Inserire qui il blocco giallo di Controllo “ferma tutto”.

Cliccare sulla bandiera verde per verificare che il programma venga eseguito correttamente.

Fase successiva: aggiungere una schermata “GAME OVER” al termine del gioco.

Fase 7. Inserire una schermata Game Over e sfondi che cambiano durante il gioco

In questa fase si vuole creare una schermata Game Over e si vogliono realizzare vari sfondi che compaiono durante il gioco; per raggiungere entrambi gli obiettivi è possibile trattare la schermata Game Over come uno sprite e inserire diverse immagini di sfondo nello stage.

Obiettivo 1: creare la schermata Game Over

Ecco come creare un nuovo sprite costituito dal testo “Game Over” che compare man mano sullo sfondo nel momento in cui BATCAT viene toccato da un pipistrello:

  1. Disegnare un nuovo sprite: cliccare sull’icona del pennello senza importare un nuovo sprite da una libreria come effettuato in precedenza.
  2. Cliccare sull’icona del pennello: si apre automaticamente il Tab dei Costumi, si crea la thumbnail del Costume1 e compare un’area di lavoro.
  3. Scegliere la modalità vettoriale cliccando in basso a destra sul pulsante “converti in vettoriale”.
  4. Prendere lo strumento di testo e scrivere la lettera G; attraverso le maniglie di ridimensionamento è possibile modificare le dimensioni della lettera creata; in basso a sinistra invece è possibile scegliere il tipo di carattere.
  5. Cliccare con il tasto destro sull’icona del Costume1 ed eseguire il comando Duplica: automaticamente si crea la thumbnail del Costume2. Nell’area di lavoro del Costume2 aggiungere alla casella di testo la lettera A, in modo che compaia la scritta GA.
  6. Procedendo analogamente per le altre lettere, creare in totale 8 costumi (8 sono le lettere che costituiscono la scritta GAME OVER).
  7. Modificare il nome dei costumi in “g”, “ga”, “gam”, “game”, “game o”, “game ov”, “game ove”, “game over” in modo che siano facilmente identificabili.

A questo punto occorre programmare il comportamento di questo nuovo sprite che deve comparire solo dopo che BATCAT viene toccato da un pipistrello.

Obiettivo 2: programmare lo sprite “gameover”

Occorre programmare questo sprite in modo che compaia solo dopo che BATCAT viene toccato da un pipistrello; questi sprite devono quindi essere messi in comunicazione tra di loro in modo che uno si comporti in un certo modo solo dopo aver ricevuto un messaggio dall’altro. Si ricorre al blocco “invia a tutti messaggio 1” nella paletta ocra delle Situazioni:

  1. Cliccare sulla thumbnail dello sprite “gameover”, cliccare sul tab degli Script.
  2. Nascondere lo sprite all’inizio del gioco (inserire il blocco viola “nascondi” sotto al cappello “quando si clicca su bandiera verde”).
  3. Lo sprite deve comparire solo dopo che il gatto è stato toccato: adoperare il blocco relativo ai MESSAGGI: quando viene toccato, BATCAT invia un messaggio a tutti gli sprite i quali eseguono determinate azioni solo dopo aver ricevuto quel messaggio (inserire il cappello dai blocchi arancioni delle Situazioni “quando ricevo messaggio1”).
  4. Dare un nome al messaggio: andare sul menu a tendina del blocco, selezionare “nuovo messaggio...” e digitare il nome del messaggio (“game_over” in questo caso). Bisogna ricordarsi di andare poi nello sprite di BATCAT ed inserire il blocco “invia a tutti game_over”.
  5. Scegliere la posizione in cui far comparire la scritta GAME OVER (“vai a x: -82, y: 54).
  6. La scritta deve comparire (blocco viola “mostra”) partendo dal costume “g” (“passa al costume g”)
  7. A brevi intervalli (“attendi 0,3 secondi) far comparire i restanti 7 costumi (“ripeti 7 volte”) seguenti (“passa al costume seguente”).
  8. Fermare il gioco (“ferma tutto”) quando la scritta si completa.

Occorre ora ricordarsi di andare nello script di BATCAT e fargli lanciare il messaggio “game_over”.

Obiettivo 3: BATCAT deve inviare il messaggio

  1. Cliccare sullo sprite “Cat1 Flying” e sul Tab degli Script.
  2. Aggiungere nel blocco “per sempre” quei blocchi che faranno scomparire BATCAT dallo stage ogni qualvolta (“se...allora”) verrà toccato o (blocco verde degli Operatori “...o...”) dai pipistrelli che provengono da sinistra (sensore azzurro “sta toccando Bat2”) o dai pipistrelli che provengono da destra (sensore azzurro “sta toccando Bat3”); solo dopo che sarà stato toccato si nasconderà (blocco viola “nascondi”) ed invierà a tutti gli altri sprite il messaggio “game_over” (blocco arancione delle Situazioni “invia a tutti game_over”).

Cliccare sulla bandiera verde per verificare che i comandi vengano eseguiti correttamente.

Obiettivo 4: inserire diversi sfondi

Per selezionare e inserire nuovi sfondi:

  1. Cliccare sulla thumbnail dello Stage in basso a sinistra per selezionare lo Stage.
  2. Selezionare il tab degli Sfondi (quando si seleziona lo Stage non si parla più di “costumi” ma di “sfondi”).
  3. Cliccare sull’icona “scegli uno sfondo dalla libreria”.
  4. Selezionare gli sfondi che si intendono importare nello Stage; per questo gioco all’inizio è stato inserito uno sfondo con le coordinate dello stage (xy-grid) per agevolare la programmazione; in seguito sono stati scelti 7 sfondi che diventano progressivamente più scuri per rendere la percezione dei pipistrelli neri via via più difficoltosa.

Occorre ora assegnare istruzioni ai diversi sfondi dello Stage.

Obiettivo 5: programmare la successione degli sfondi ogni 10 secondi

  1. Cliccare sul tab degli Script.
  2. Scegliere come modificare l’aspetto degli sfondi: siccome si è ancora in fase di progettazione può essere utile far cominciare il gioco con una griglia (“passa allo sfondo xy-grid”) che dopo due secondi (“attendi 2 secondi”) viene sostituita da un ciclo continuo (“per sempre”) di sfondi che si caricano uno dopo l’altro (“passa allo sfondo seguente”) ogni 10 secondi (“attendi 10 secondi”).

Cliccare sulla bandiera verde per verificare che il programma venga eseguito correttamente.

Fase successiva: aggiungere una musica di sottofondo ed effetti sonori.

Fase 8. Inserire una musica di sottofondo ed un effetto sonoro durante il Game Over

In questa fase si decide di inserire un sottofondo musicale tutto lo svolgimento del gioco ed un effetto sonoro che si sovrapponga alla musica di sottofondo durante la creazione della schermata di game over.

Obiettivo 1: inserire una musica di sottofondo

Per inserire una musica di sottofondo:

  1. Cliccare sulla thumbnail dello Stage.
  2. Cliccare sul tab dei Suoni.
  3. Cliccare sull’icona “scegli un suono dalla libreria”.
  4. Scegliere un suono, cliccare su OK: il suono compare nell’area di lavoro insieme alla sua thumbnail; nella thumbnail compare la sua durata.

Obiettivo 2: programmare l’inizio della musica di sottofondo

  1. Selezionare il tab degli Script
  2. Per eseguire la musica nello stesso tempo in cui compaiono gli sfondi, occorre inserire un nuovo cappello ocra “quando si clicca sulla bandiera verde” ed inserire il suono scelto in modo che venga riprodotto fino alla fine (“produci suono dance celebrate e attandi la fine”); per eseguire il suono con un ciclo continuo occorre adoperare il blocco di Controllo “per sempre”.

Cliccare sulla bandiera verde per verificare la corretta esecuzione del programma.

Obiettivo 3: inserire un effetto sonoro durante il Game Over

Inserire il suono di una porta cigolante durante la schermata Game Over:

  1. Cliccare sulla thumbnail dello sprite “gameover” nella lista degli sprite e cliccare sul tab degli Script.
  2. Programmare il gioco in modo che durante la comparsa della scritta Game Over il suono scelto venga eseguito fino alla fine (“produci suono door creak e attendi la fine”); terminato il suono si farà terminare anche la musica di sottofondo (“arresta tutti i suoni”) e si farà terminare il gioco (“ferma tutto”). Dove inserire questi blocchi? Occorre inserire questi blocchi sotto un nuovo cappello delle Situazioni “quando ricevo game_over” per eseguire il suono durante la creazione della scritta Game Over.
  3. Spostare Il blocco “ferma tutto” sotto il blocco “arresta tutti i suoni” per far sì che il gioco termini solo dopo che è terminata la musica.

Cliccare sulla bandierina per verificare la corretta esecuzione del programma.

Fase successiva: passare da uno sfondo all’altro solo dopo aver raggiunto determinati punteggi.

Fase 9. Cambiare lo sfondo ogni due punti

In questa fase si vuole programmare il gioco in modo che il variare degli sfondi non dipenda dallo scorrere del tempo ma dal punteggio ottenuto; si sceglie di passare da uno sfondo all’altro ogni due punti.

Obiettivo 1: cancellare gli sfondi non necessari

Ottenuta una configurazione accettabile è consigliabile fare ordine cancellando gli sfondi non più utili ai fini della programmazione. In questo caso si elimina lo sfondo “xy-grid”.

Obiettivo 2: programmare il cambiamento dello sfondo ogni due punti

Per raggiungere questo obiettivo è fondamentale ricordarsi che il punteggio è stato programmato nella fase 5 negli sprite dei pipistrelli con l’introduzione della variabile PUNTI: quando un pipistrello tocca per tre volte la palla, il punteggio aumenta di una unità; occorre pertanto far sì che dopo l’aumento del punteggio gli sfondi dello stage cambino in sequenza. Per mettere in comunicazione lo sprite dei pipistrelli con lo stage si ricorrerà ancora una volta al blocco dei MESSAGGI presente nella paletta delle Situazioni.

Si parte programmando lo Stage:

  1. Cliccare sulla thumbnail dello Stage e cliccare sul tab degli Script.
  2. Eliminare tutti i blocchi relativi al variare degli sfondi con il tempo.
  3. Conservare solo i blocchi che producono il suono.
  4. Inserire sotto il cappello “quando si clicca sulla bandiera verde” il blocco “passa allo sfondo metro1” per far cominciare il gioco con il primo dei sette sfondi presenti nello Stage
  5. Inserire quei blocchi che consentono allo Stage di passare allo sfondo seguente (“passa allo sfondo seguente”) solo se (“se...allora”) sono stati realizzati due punti. Come inserire questa condizione? Occorre osservare nella paletta degli Operatori la varietà di blocchi esistenti e riflettere su ogni blocco: il “resto della divisione...diviso...” fa al caso nostro. Completando infatti “resto della divisione...diviso...” con la variabile PUNTI e con il numero 2 ed eguagliando il tutto a 0 si raggiunge l’obiettivo prefissato: ogni numero pari diviso per due non ha un resto, cioè il resto è uguale a 0.
  6. Ricorrere ora al MESSAGGIO: lo Stage è ora in grado di passare da uno sfondo all’altro ma solo dopo aver ricevuto un messaggio dallo sprite che regola il punteggio: occorre quindi inserire il cappello “quando ricevo nuovo messaggio...”, dare un nome al nuovo messaggio (in questo caso si è scelto “punto_fatto”) e passare subito a programmare lo sprite che invia il messaggio appena creato.

Obiettivo 3: far inviare il messaggio “punto_fatto”ai pipistrelli

  1. Andare nello script dello sprite Bat2 ed inserire “invia a tutti punto_fatto” dopo “cambia punti di 1”
  2. Andare anche nello script dello sprite Bat3 ed inserire “invia a tutti punto_fatto” dopo “cambia punti di 1”

Cliccare sulla bandierina per verificare che i comandi vengano eseguiti correttamente.

Fase successiva: creare livelli di gioco.

Fase 10. Inserire livelli di gioco

In questa fase si vogliono inserire dei livelli di gioco: se BATCAT riesce a superare tutti e sette gli sfondi (cioè riesce ad ottenere 14 punti) allora può passare al livello successivo che partirà nuovamente dallo sfondo n.1.

Obiettivo: passare al livello successivo ogni 14 punti (ogni 7 sfondi)

  1. Cliccare sulla thumbnail dello Stage.
  2. Cliccare sul tab degli Script.
  3. Cliccare sulla paletta arancione delle Variabili e Liste e creare la nuova variabile LIVELLO.
  4. Selezionare la casella di controllo della variabile per farla comparire nello Stage.
  5. Cliccare sulla variabile nello Stage fino ad ottenere la configurazione con il nome in evidenza.
  6. Tornare nall’area degli Scripts ed inserire il blocco arancione “porta LIVELLO a 1” in modo che il livello iniziale di gioco sia 1.
  7. Inserire sotto il cappello “quando ricevo punto_fatto” il blocco arancione “porta LIVELLO a...”
  8. Completare il blocco arancione con gli operatori verdi ricorrendo all’operatore “intero inferiore”, all’operatore “.../...”, all’operatore “...+...” come mostrato in figura, in modo che ogni 14 punti il livello aumenti di 1 (“(intero inferiore di (PUNTI/14))+1”).

Cliccare sulla bandierina per verificare che il programma venga eseguito correttamente.

Fase successiva: aumentare la velocità dei pipistrelli ad ogni livello.

Fase 11. Programmare la velocità dei pipistrelli

In questa fase si vuole aumentare la velocità dei pipistrelli dopo ogni livello; si mettono in relazione la velocità dei pipistrelli con il numero del livello raggiunto.

Obiettivo: aumentare la velocità dei pipistrelli ad ogni livello

  1. Cliccare sulla thumbnail dello sprite di Bat1.
  2. Cliccare sul tab degli Script.
  3. Individuare il blocco che regola la velocità del pipistrello (“cambia x di -2”).
  4. Moltiplicare la velocità del pipistrello (il valore di x corrispontente a -2) con il numero del livello, ricorrendo all’operatore verde della moltiplicazione; procedere analogamente con lo sprite Bat3.
  5. Provare il gioco cliccando sulla bandiera verde.
  6. Se il valore immesso rende il gioco impossibile da realizzare modificare la velocità dei pipistrelli moltiplicando il valore di x per un numero leggermente inferiore al livello raggiunto; in questo caso è stato scelto di moltiplicare “-2” per “0.75 per LIVELLO”.
  7. Ricordarsi di effettuare le modifiche sia sullo sprite Bat2 che sullo sprite Bat3.

Cliccare sulla bandierina per verificare che il programma venga eseguito correttamente.

Fase successiva: creare una schermata introduttiva al gioco (una intro).

Fase 12. Creare una intro

In questa fase si intende creare una schermata iniziale con la quale si informa il giocatore che per iniziare bisogna premere un tasto; tale schermata comparirà anche dopo la scritta gameover.

Si comincia creando un nuovo sprite denominato “intro” e progettando la sua veste grafica; in tale sprite si inserisce il messaggio “GO” con il quale far partire tutto il gioco: per questo motivo negli script di tutti gli altri sprite occorre sostituire il cappello “quando si clicca sulla bandiera verde” con il cappello “quando ricevo GO”.

Per far sì che la intro appena creata compaia anche dopo la scritta gameover, occorre che lo sprite “gamover” invii al termine del gioco un messaggio (messaggio denominato in questo caso “intro”); lo sprite “intro”, dopo aver ricevuto questo messaggio, si mostrerà e fermerà il gioco. Per ricominciare a giocare si dovrà premere la lettera B.

La comprensione di questa fase è affidata all’osservazione delle immagini.