Crab and Donuts II

 



Bentornati 

al nostro mini progetto per la realizzazione di un giochini semplice semplice con scratch. La volta scorsa ( 👉 QUI ) abbiamo fatto muovere il nostro granchietto e creato la macchina spara donuts per la gioia di Crab , abbiamo anche fatto in modo che al tocco del suolo i donuts sparissero. Oggi andremo ad utilizzare una variabile per tenere conto di quanti pasticcini ha mangiato il nostro amico che poi sarà il nostro punteggio di gioco. 

Qui trovi il progetto scratch  👉 PROGETTO

Come ? 😱 Non sai cos'è una variabile? Non ti preoccupare non siamo mica ad un esame, detto molto semplicemente una variabile è un po' come un cassettino dove possiamo salvare delle informazioni , sia testuali che numeriche, ma anche qualcosa di più complesso se passiamo ad altri ambienti di programmazione ( potrebbero piacerti i tutorial su AppInventor o Kodular per la realizzazione di app ). Semplice, no?

Codice di Donut

Prima di tutto dobbiamo creare la nostra variabile, quindi raggiunta l'apposita sezione sul lato sinistro, clicchiamo su crea una variabile ed assegniamo un nome , io ho usato PUNTEGGIO, che fantasia vero?

Bene, ti ricordi la famosa inizializzazione ? Adesso abbiamo un nuovo blocco da inserire perché ad ogni nuova partita il punteggio dovrà ripartire da zero, come primo blocco andremo ad inserire proprio porta PUNTEGGIO a zero in modo da impostare la corretta partenza. Il resto del codice sotto la bandierina verde rimarrà identico.




Vediamo invece cosa aggiungere nel momento in cui cloniamo il nostro pasticcino e le personalizzazioni che ho introdotto. Volevo movimentare un po' la grafica quindi ho introdotto un punta in direzione numero a caso tra 75 e 105 per fare in modo che ogni donuts esca inclinato in maniera differente, se vuoi puoi ampliare il range di inclinazione. Ti ricordo che la direzione iniziale di questo sprite è 90 e per questo motivo scegliendo una variazione di 15 gradi avremo i due valori riportati.
Il secondo blocco ci porta ad introdurre i suoni nel nostro progetto, molto più carino, selezionato lo sprite , in lato a sinistra il tab SUONI ti permette di accedere all'editor dei suoni ( se vuoi un approfondimento richiedilo nei commenti qui o sui social ) e in basso a sinistra troverai il tasto per accedere alla galleria degli audio. Io ho selezionato Suction Cup per creare un suono di comparsa di un oggetto o almeno era quello che mi piaceva di più 😂 
Avvia riproduzione suono farà partire l'audio appena clonato il donut che poi verrà subito reso visibile, dimmi che non è più carino così 😜.
L'ultima parte del codice è invariata, dovrà sparire al tocco del terreno, ma abbiamo aggiunto un'altra condizione che ci permette sia di aumentare il punteggio sia di eliminare il clone , questa volta però se tocchiamo il caro Crab.
Detto fatto, se sta toccando Crab ( tocca sulla freccia verso il basso per aprire il menu di tutti gli sprite che si possono toccare ) avvia riproduzione suono , aumentiamo il punteggio con cambia PUNTEGGIO di 1 ed elimina questo clone. Ti faccio notare che il nuovo blocco suono ha un nome diverso perché ho inserito un secondo suono sempre dalla galleria e poi, usando la freccina verso il basso sul blocco suono, dal menu ho selezionato Bite che riproduce il morso ad un oggetto. 


Codice della Bomba
Sì, lo so non è una bomba ma pesce palla non mi piaceva, tu potrai trovare l'immagine che più ti piace e caricarla su scratch per usarla, io per praticità mi accontenterò del nostro pesciolino.
In tutti i giochi che si rispettino deve esserci la penalità, in questo caso rappresentata dal pesciolino che nel momento del tocco con Crab andrà a togliere una vita al nostro giocatore. Ma noi non abbiamo impostato delle vite! Vero ma lo faremo presto.
Il codice è praticamente identico a quello del Donut quindi andremo a vedere solo le modifiche. Lo sapevi che trascinando un intero blocco di codice, e portandolo sulla parte destra dove abbiamo tutti gli sprite, se lo trascini precisamente su uno qualsiasi degli sprite presenti andrai a copiare tutto quel blocco nel codice dello sprite selezionato? Prova, trascina il blocco e portalo su uno qualsiasi degli sprite già esistenti, per recuperare tempo ho introdotto il nostro sprite e dopo ho trascinato il codice di Donut, poi ho effettuato le modifiche. Un operazione simile si può fare anche con lo zaino che trovi nella parte bassa dell'editor. Quando si clicca sulla bandierina verde è identico come sequenza e codice , lo sprite partirà dall'alto raggiungendo una posizione a caso ogni tot di tempo per essere clonato. Ho fatto tre modifiche ai valori :
1- la coordinata X è stata cambiata nel blocco vai a ... per evitare che partendo insieme con donut, nell'eventualità remota della generazione casuale di numeri identici, si trovino nella stessa posizione. 
2- nel blocco per sempre i numeri a caso sono tra 3.0 e 4.5 per far uscire meno bombe e più pasticcini, se vuoi puoi aumentare i valori 
3- nel blocco per sempre vai dove X è ... ho modificato il valore massimo in 210, entrambi i lati, perché il nuovo sprite essendo più grande avrebbe toccato i bordi eliminando il clone.
  



Nella parte  relativa alla clonazione potrai scegliere i file audio che preferisci e nel blocco sta toccando Crab dovremo eliminare la modifica del punteggio , visto che è una penalità, e inserire il blocco invia a tutti. Lo trovi in situazioni, sono gli ultimi tre blocchi della sezione e permettono di gestire l'invio di messaggi tra gli sprite riuscendo così a inviare informazioni, sincronizzare operazioni; premendo sulla solita freccina verso il basso dal menu troverai l'opzione nuovo messaggio per inserire un nome a tuo piacimento. Heart mi sembrava appropriato visto che andremo a dialogare con lo sprite che gestirà le vite del nostro giocatore.

Codice delle vite
Naturalmente questa è una delle strade percorribili e io adoro questa possibilità che 100 persone che visualizzeranno i mie tutorial potrebbero trovare 100 strade differenti per fare la stessa cosa.
Come da tradizione in alto da qualche parte dei cuoricini o il personaggio in miniatura, una testolina andrà ad indicare quanti tentativi avrà il giocatore prima del fatidico GAME OVER.
Dalla nostra galleria ho prelevato un cuoricino e ho lavorato un po' con la grafica, lato sinistro in alto il tab COSTUMI , per prima cosa ho selezionato il cuore e semplicemente con il classico Ctrl+C e Ctrl+V ho creato altri due cuori nello stesso costume allineandoli come in foto. Questo sarà il mio punto di partenza, adesso sul lato sinistro facendo click di destra sul costume appena realizzato andrò a selezionare duplica, avrò un costume identico ma andando a selezionare il cuore più a destra e poi in alto RIEMPIMENTO compariranno dei selettori per modificare vari parametri , modifichiamo la saturazione e portiamola a 15.
l'effetto finale sarà un cuore leggermente sbiadito che indicherà la perdita di una vita. A questo punto click di destra sul costume appena modificato e duplico ( così farò meno modifiche ) e agisco sul secondo cuore schiarendolo dopo averlo selezionato. Continuiamo fino ad ottenere 4 costumi, tre cuori rossi, 2 rossi e uno schiarito, 1 rosso e 2 schiariti, tutti chiari, ecco il nostro countdown delle vite. Una volta fatta la modifica selezioniamo il costume con i tre cuori rossi e dallo stage spostiamo manualmente lo sprite per posizionarlo a nostro gusto.




Passiamo al codice, bandierina verde e introduciamo il blocco passa al costume 1, io ho nominato i vari costumi, tu avrai nomi diversi, poi cerchiamo i famosi blocchi dei messaggi per trovare quello a forma di cappello e dal menu che compare cliccando la freccina, andiamo a selezionare heart o qualunque nome tu gli abbia dato.
Quando il pesciolino tocca Crab, parte la telefonata e nostri cuoricini alzando la cornetta sapranno di dover cambiare qualcosa, un semplice blocco passa al costume seguente modificherà la visualizzazione passando al numero di vite corrette. Ad ogni tocco della bomba cambierà il costume ma non possiamo variare all'infinito, abbiamo bisogno di un controllo che ci fermi nel momento corretto , una condizione che se verificata faccia terminare il gioco. Abbiamo realizzato 4 costumi che possono essere identificati sia per nome che per numero, inserendo se numero costume = 4 vuol dire che abbiamo finito le vite, se verificata useremo passa allo sfondo game over  ( identico al funzionamento dei  costumi ma agisce sugli sfondi ) riproduco suono e attendo la fine e poi il blocco ferma tutto. La scelta del blocco riproduci e attendi è voluta cosi abbiamo alcuni secondi di attesa prima che venga fermato tutto, la sequenzialità dei comandi di scratch ci permette di sfruttare queste blocco per sentire un audio e temporeggiare visto che il blocco seguente partirà solo alla fine dell'audio. 



Quindi il pesce tocca Crab e invia il messaggio ai cuori che si modificano e raggiunto il limite massimo fermano il gioco dopo la musichetta e aver modificando lo sfondo.

Codice dello sfondo
Anche lo sfondo può avere un suo codice e i suoi "costumi" , andando sul lato destro , estrema destra, troveremo la sezione degli sfondi e cliccando per selezionare, ci permetterrà poi di selezionare in alto a sinistra il tab SFONDI e il suo editor grafico. Dopo una modifica degna dei migliori film di animazione il nostro sfondo sarà decorato con una stupenda scritta game over in stile pixel. 🙈 La T di testo mi permetterà questa incredibile modifica per introdurre la scritta, modificare il colore, il font, la posizione e la grandezza. Il suo codice poi sarà complicatissimo bandierina verde e passa allo sfondo start.






Con questo piccolo giochino in realtà abbiamo visto molti blocchi di codice e molte dinamiche che si possono sviluppare all'interno dei progetti, lavorato con la grafica e i suoni. Spero di  averti dato tanti spunti , come sempre ti aspetto sui vari social e nei commenti per qualsiasi chiarimento o richiesta.

Raffaele


 Se hai apprezzato il mio lavoro offrimi un bel caffè 😍

 

Commenti

Ciao, spero ti piaccia il blog. Se ti fa piacere qui puoi offrirmi un caffè!

Post popolari in questo blog

GOOGLE SCRIPT & KODULAR READ, WRITE, UPDATE, DELETE

Tu lo conosci THUNKABLE?