akkaz / scuola

← Le guide dei nove giochi

1G · continua il tuo progetto Scratch

Il prossimo pezzo
del tuo gioco.

Come faccio i turni? Come salgo di livello? Parti dal gioco che hai già iniziato: scegli un aiuto e costruisci una cosa alla volta.

Prima salva una copia del progetto in Scratch: File → Salva sul tuo computer. Poi prova la modifica sulla copia.

Prima dei blocchi

  1. Scegli lo sprite cliccando la sua miniatura sotto il gioco. Sopra ogni figura trovi il nome.
  2. Crea le variabili: categoria arancione Variabili → Crea una variabile → Per tutti gli sprite. Spunta il loro nome per vedere il valore durante la prova.
  3. Trascina i blocchi in Scratch guardando la figura. I nomi nei menu devono coincidere con quelli del tuo progetto. La scritta «fine» chiude un blocco a C: non è un blocco da cercare.

Dove cercare: Situazioni (giallo) per bandiera, tasti e messaggi; Controllo (arancione) per «se» e attese; Operatori (verde) per confronti e calcoli. In alto in Scratch puoi scegliere la lingua italiana.

01 · Da Lotta a turni e Arena Camuna

«Come faccio a giocare uno alla volta?»

Una variabile tiene il posto: Turno. Vale «mio» quando puoi attaccare e «avversario» quando devi aspettare.

Parti dalla guida Lotta a turni. Questi sono gli stessi blocchi dei traguardi 2–4: se li hai già, controllali e correggili, senza aggiungere una seconda copia.

Prova l’idea qui

In questo esempio l’attacco toglie 15 PS e la risposta 10. Nel gioco della guida la risposta è casuale, tra 8 e 16.

I tuoi PS 100PS avversario 100

Turno: mio. Puoi attaccare.

È una dimostrazione del turno. Il tuo progetto si costruisce in Scratch con i blocchi qui sotto.

1. Prepara personaggi, sfondi e variabili

Servono gli sprite Mio e Avversario; gli sfondi Arena, Hai vinto, Hai perso; le variabili PS mio, PS avversario, Turno, tutte per tutti gli sprite.

Sullo sprite Mio
quando si clicca su @greenFlag
passa allo sfondo [Arena v]
porta [PS mio v] a (100)
porta [PS avversario v] a (100)
porta [Turno v] a [mio]
dire [Premi 1 o 2 per attaccare!] per (2) secondi

In «porta Turno a» scrivi la parola mio al posto del numero. Un contenitore può ricordare anche una parola.

2. Attacca solo quando tocca a te

Sullo sprite Mio
quando si preme il tasto [1 v]
se <(Turno) = [mio]> allora
  porta [Turno v] a [avversario]
  dire [Attacco rapido!] per (1) secondi
  cambia [PS avversario v] di (-15)
  invia a tutti [turno avversario v]
fine

Prima cedi il turno, poi fai l’animazione. Così un secondo clic o tasto non fa partire un altro attacco durante l’attesa. Il blocco verde «=» controlla se Turno contiene la parola «mio».

Per il messaggio: in «invia a tutti» apri il menu → Nuovo messaggio → scrivi turno avversario.

Prova: premi la bandiera e poi 1. I PS avversari diventano 85. Premendo ancora 1 non cambi nulla: manca ancora la risposta del prossimo passo.

3. Fai rispondere l’altro personaggio

Sullo sprite Avversario
quando ricevo [turno avversario v]
se <(PS avversario) < (1)> allora
  passa allo sfondo [Hai vinto v]
  ferma [tutto v]
fine
attendi (1) secondi
dire [Contrattacco!] per (1) secondi
cambia [PS mio v] di (numero a caso tra (-16) e (-8))
se <(PS mio) < (1)> allora
  passa allo sfondo [Hai perso v]
  ferma [tutto v]
fine
porta [Turno v] a [mio]

«Quando ricevo» aspetta quel messaggio. Se l’avversario è già sconfitto, il gioco finisce prima del contrattacco. Altrimenti risponde e restituisce il turno.

Prova: ricomincia e premi 1 tante volte di seguito: durante la risposta non devi infliggere altri danni. Dopo la risposta puoi attaccare di nuovo. Alla vittoria premi la bandiera: entrambi i PS devono tornare a 100.

Resta sempre il turno dell’avversario

Controlla che i due messaggi si chiamino esattamente «turno avversario», che «quando ricevo» sia su Avversario e che l’ultimo blocco riporti Turno a «mio».

Voglio due giocatori invece del computer

Prima fai funzionare la versione sopra. Poi, su Avversario, sostituisci «quando ricevo turno avversario» con «quando si preme il tasto 2» e racchiudi tutta la risposta in «se Turno = avversario». Come primo blocco dentro il se metti «porta Turno a occupato», per bloccare pressioni ripetute. Alla fine resta «porta Turno a mio». Su Mio cambia il primo «porta Turno a avversario» in «porta Turno a occupato», togli l’invio del messaggio e, dopo il danno, controlla subito se PS avversario è minore di 1: in quel caso passa a Hai vinto e ferma tutto. Se la lotta continua, come ultimo blocco dell’attacco di Mio metti «porta Turno a avversario». Il tasto 2 deve essere libero: rimuovi l’eventuale attacco potente della guida. Prova che il secondo giocatore non possa agire per primo.

02 · Da Arraffagemme, Mangia e cresci o Tycoon

«Come faccio salire di livello il personaggio?»

Guadagni esperienza facendo qualcosa. Ogni 10 punti compri un nuovo livello; i punti avanzati restano.

Qui ogni gemma vale 3 esperienza. Parti dal livello 1 e dalla potenza 10. Ogni livello aggiunge 2 alla potenza. Sono regole di questo esempio: dopo averlo provato puoi cambiarle.

Prova prima di costruire

Livello 1Potenza 10Esperienza 0 / 10

Raccogli quattro gemme: cosa succederà ai 12 punti?

1. Prepara i contatori una volta sola

Crea Esperienza, Livello e Potenza, per tutti gli sprite. Metti questi blocchi sul tuo personaggio: lo sprite che controlli. Non metterli su ogni gemma o sui cloni.

Sullo sprite il tuo personaggio
quando si clicca su @greenFlag
porta [Esperienza v] a (0)
porta [Livello v] a (1)
porta [Potenza v] a (10)

Se il personaggio ha già un avvio con la bandiera, inserisci le tre impostazioni all’inizio di quello script, prima di eventuali cicli.

2. Impara il meccanismo con una gemma da cliccare

Aggiungi uno sprite temporaneo chiamato Gemma prova. Cliccarlo simulerà una raccolta: per questa prova la gemma resta visibile e puoi cliccarla più volte.

Sullo sprite Gemma prova
quando si clicca questo sprite
cambia [Esperienza v] di (3)
ripeti fino a quando <(Esperienza) < (10)>
  cambia [Esperienza v] di (-10)
  cambia [Livello v] di (1)
  cambia [Potenza v] di (2)
fine

«Ripeti fino a quando» è in Controllo. Inserisci il confronto verde Esperienza < 10 nel suo foro: significa «continua a comprare livelli finché hai almeno 10 punti». Quando ne rimangono meno di 10, il ciclo si ferma.

Prova: bandiera, poi 3 clic: esperienza 9 e livello 1. Al quarto clic: esperienza 2, livello 2 e potenza 12. Non hai perso i due punti avanzati!

Prova: cambia temporaneamente il premio da 3 a 25 e premi la bandiera. Un clic deve dare livello 3, esperienza 5 e potenza 14. Poi rimetti il premio a 3.

3. Porta il premio dentro il tuo gioco

Quando la prova funziona, sposta tutti i blocchi sotto «quando si clicca questo sprite» nel punto in cui il tuo gioco assegna i punti per una raccolta. L’evento deve essere contato una volta sola. Poi elimina Gemma prova.

4. Fai servire davvero il livello

Aumentare un numero non rende automaticamente più forte il personaggio. Se hai un combattimento, al posto del danno fisso −15 puoi usare l’ovale verde 0 − Potenza nel blocco che cambia i PS avversari. Con Potenza 12, il colpo toglie 12 PS.

In un gioco di raccolta puoi invece sbloccare un costume al livello 2: aggiungi il controllo subito dopo il ciclo dei livelli. Ricorda di ripristinare il costume iniziale alla bandiera.

Continuo a salire di livello anche senza raccogliere

Non mettere il premio dentro un «per sempre» da solo. Deve essere dentro l’evento di raccolta; l’oggetto deve spostarsi o sparire dopo aver assegnato il premio. Controlla anche di sottrarre 10 esperienza dentro il ciclo dei livelli.

Alla bandiera torno al livello 1: è giusto?

Sì: in questo esempio la bandiera inizia una partita nuova. Il salvataggio .sb3 conserva il progetto, ma il suo avvio reimposta i contatori. Per mantenere i livelli fra due incontri della stessa partita, usa un messaggio «nuovo incontro» che reimposta soltanto PS e Turno; non azzerare Esperienza e Livello. È una modifica successiva, da fare dopo che il primo incontro funziona.

03 · Per giochi con personaggio e ostacoli

«Perché perdo tutte le vite con un solo urto?»

«Per sempre» controlla il contatto tante volte al secondo. Dopo un danno aspetta che i due sprite si separino.

Questa versione usa un solo sprite ostacolo chiamato Pericolo, una variabile Vite per tutti gli sprite e lo sfondo Game over. È adatta, per esempio, a Corsa a corsie: scegli nel menu il nome reale dell’ostacolo.

Sostituisci il vecchio controllo che faceva perdere al primo contatto. Se lo lasci attivo, continuerà a fermare il gioco subito. Mantieni separati gli script che muovono personaggio e ostacolo, così continuano a funzionare anche durante l’attesa.

Sullo sprite il tuo personaggio
quando si clicca su @greenFlag
porta [Vite v] a (3)
per sempre
  se <sta toccando (Pericolo v)?> allora
    cambia [Vite v] di (-1)
    se <(Vite) < (1)> allora
      passa allo sfondo [Game over v]
      ferma [tutto v]
    fine
    attendi fino a quando <non <sta toccando (Pericolo v)?>>
  fine
fine

Il blocco verde «non» rovescia la domanda: «non sta toccando Pericolo?» diventa vero quando si separano. Lo trovi in Operatori; il sensore azzurro «sta toccando» va dentro di lui.

Prova: parti con 3 vite. Rimani contro il pericolo: perdi una sola vita. Allontanati e toccalo di nuovo: ne perdi un’altra. Al terzo contatto compare Game over.

Nell’avvio del gioco ripristina anche lo sfondo di gioco e le posizioni, con personaggio e ostacolo separati. Controlla che una seconda partita riparta con 3 vite.

Il mio pericolo è il colore della lava, non uno sprite

Nella guida Il pavimento è lava il sensore è «sta toccando il colore». Usa quello in entrambi i punti al posto di «sta toccando Pericolo», scegliendo lo stesso colore col contagocce. Assicurati che il personaggio possa allontanarsi dalla lava.

04 · Se qualcosa non torna

Fermati sul primo blocco che sbaglia.

  1. Sono sullo sprite giusto? Leggi il nome sopra la figura e controlla la miniatura selezionata in Scratch.
  2. Quando parte? Bandiera, clic, tasto e messaggio sono eventi diversi. Premi quello previsto.
  3. Che valore vedo? Mostra la variabile sullo stage. Il turno cambia? L’esperienza sale di 3 o di 300? Trova il primo valore inatteso.
  4. Ci sono due script che fanno la stessa cosa? Se aggiungi la nuova versione senza togliere la vecchia, potrebbero partire entrambe.

Per chiedere aiuto: «Mi aspettavo…, invece succede…, ho già controllato…». Mostra al docente lo sprite e il gruppo di blocchi coinvolto.