Menu Chiudi

Scratch Giochi – Jumper cat

Hai mai giocato a questo videogioco? Un personaggio deve attraversare una strada, evitando le macchine. Prova a giocare!

Proviamo a realizzarlo insieme! Segui questi passaggi, oppure guarda il video in fondo all’articolo.

 

Scarica questo stage per il gioco Jumper frog, e caricalo sul tuo progetto. Quest’immagine rappresenta una alternarsi di strade e strisce di prato.

 

Ridimensiona opportunamente il gattino, in modo che riesca a stare nelle aree grigie e in quelle verdi. Inizializzane la posizione, in modo che all’inizio del gioco si trovi sull’area verde più in basso.

 

Inseriamo un nuovo sprite, che abbia i costumi delle automobili che passano nella prima corsia. Scelgo diversi costumi per lo stesso sprite, ad esempio: Convertibile, Convertibile 3, City bus-a, Truck-b.

Adeguiamo graficamente i nostri mezzi alle dimensioni delle corsie, in modo che non occupino lo spazio del prato. Inoltre, tutti i costumi dovranno essere rivolti nello stesso verso: ad esempio, da sinistra verso destra. Se sono rivolti nel verso opposto, devo cambiarme il verso con il pulsante “Rifletti in orizzontale

 

Inizializzo la posizione delle macchine della prima corsia. Voglio che partano a sinistra, subito fuori dallo stage. Trascino lo sprite nella posizione desiderata e leggo le sue coordinate.
X vale circa -200; Y vale circa -110.

 

 

Voglio che nella corsia passino molte macchine: devo creare dei cloni dello sprite, che:

  • appaiano nel momento in cui vengono clonati
  • partano in successione dallo stesso punto (-200; -110)
  • puntino verso destra e procedano fino in fondo alla corsia
  • abbiano un costume casuale (in modo che sembrino macchine diverse)

Uso i comandi:

  • numero a caso tra … e …” della categoria “operatori
  • crea clone di me stesso” della categoria “controllo
  • quando vengo clonato” della categoria “controllo

 

Il risultato è incomprensibile, ma non è sbagliato: scratch sta creando ciclicamente dei cloni che si spostano da sinistra verso destra. Il problema è che i cloni sono tutti appiccicati. Come posso risolverlo?

Dobbiamo inserire un intervallo di tempo, magari casuale per creare un traffico più realistico, tra la creazione di un clone e l’altro. Correggo così il codice:

Uso i comandi:

  • attendi … secondi” della categoria “controllo
  • numero a caso tra … e …” della categoria “operatori

 

Ho un problema: arrivati in fondo alla corsia, i coloni si bloccano e si accumulano uno sull’altro. Devo scrivere una regola che dica al clone che, una volta arrivato in fondo allo stage, si distrugga. Lo stage misura 480 x 360 pixel. Come potrei fare?

La X corrispondente alla fine dello stage è X = 240.

 

Uso i comandi:

  • se … allora” della categoria “controllo
  • … > …” della categoria “operatori
  • posizione x” della categoria “movimenti
  • elimina questo clone” della categoria “controllo

 

Ora torniamo sullo sprite del gattino, e diamo le istruzioni per muoverlo in alto e in basso.

Uso i comandi:

  • quando si preme il tasto …” della categoria “situazioni
  • cambia y di” della categoria “movimenti

Quali sono i valori ottimali da inserire nel comando”cambia y di“? I valori non sono universali, dipendono dalle misure del gattino e delle corsie dello stage.

 

Problema 1: se muovo il gattino troppo in basso, anche se non ha senso che ci vada, e dopo premo provo a farlo risalire, il gattino risulta sfasato rispetto alle corsie.

Problema 2: premo la bandierina verde, e muovo il gattino troppo in alto: se provo a farlo scendere nuovamente, il gattino risulta sfasato rispetto alle corsie.

Come posso evitare questi problemi?

Devo inserire dei controlli: impongo che il gattino si sposti solo se la sua posizione y non supera certi valori.

Riposiziono il gattino con il tasto Bandierina verde e mi appunto la Y del gattino (Y = -155).

Poi faccio andare il gattino in alto, fino a che raggiunge la striscia vere più alta. Mi appunto anche questo valore di Y (Y = 151).

Uso i comandi:

  • se … allora” della categoria “controllo
  • … > …” della categoria “operatori
  • … < …” della categoria “operatori
  • cambia y di” della categoria “movimenti

 

 

Ora creiamo la condizione in cui il gattino viene investito da un’auto e muore: se l’automobile tocca il gattino, allora il gioco deve fermarsi.

Attivo lo sprite dell’automobile. Uso i comandi:

  • se … allora” della categoria “controllo
  • sta toccando…” della categoria “sensori
  • ferma tutto” della categoria “controllo
  • invia a tutti messaggio” della categoria “situazioni

 

Adesso creiamo le auto per le altre due corsie. Duplico lo sprite delle auto.

Problema 1: i due sprite delle automobili risultano sovrapposti, sulla stessa corsia. Inoltre le macchine dovranno partire da destra. Come posso rimediare?

Innanzitutto uso il comando “rifletti in orizzontale” per ogni costume.

Posso modificare la y della posizione iniziale del secondo sprite. Provo diversi valori, fino a trovare quello giusto per collocare questo secondo sprite sulla seconda corsia.

Poi devo anche:

  • modificare la x
  • modificare la posizione x in cui va eliminato ogni clone (cioè quando arriva sul bordo destro dello stage)
  • la direzione dei passi

 

Duplico nuovamente il primo sprite delle macchinine per creare il traffico anche della corsia più in alto. In questa corsia le macchine vanno da sinistra verso destra, quandi sarà sufficiente cambiare la y iniziale dello sprite

 

 

Possiamo creare un sistema di punteggio. Ad esempio: quando supero tutte le corsie

Seleziono lo sprite del gattino. Uso il comando “crea una variabile” dalla categoria “variabili” e la chiamo “score“.

Dico al programma di inizializzare con zero la variabile score (uso il comando “porta score a…” della categoria “variabili“)

Poi impongo che ogni volta che il gatto arriva in cima (Y=151) la variabile “score” si incrementi di 1 e il gatto torni alla posizione iniziale per attraversare nuovamente la strada.

 

Devo dire al gattino cosa accade quando viene investito da un’auto, cioè quando ricevo il messaggio “game over”. Gli dico di nascondersi. Ricordiamoci che mostra e nascondi sono comandi che vanno sempre usati insieme.

 

Si può migliorare il programma in molti modi. Ad esempio:

  • più punti fai, più la velocità delle macchine aumenta, rendendo più difficile il gioco
  • creare delle monete da prendere che incrementino il punteggio
  • ogni volta che si supera un punteggio cambia lo sfondo, etc etc

 

Se hai avuto qualche difficoltà, guarda il video del canale YouTube Mondo Computazionale”

 

_______________________

Potrebbero interessarti anche:

 

Scratch Giochi – Provate a prendermi!

Scratch Giochi – Paint

Scratch Animazioni – Corsa delle auto

Scratch Animazioni – Pesci nell’acquario

https://tecnologiaduepuntozero.altervista.org/installare-scratch-3/

 

error: Content is protected !!