SCRATCH 3...



INIZIAMO...
Oggi ti mostreremo come creare un semplice platformer su Scratch partendo da zero!
Cos'è un gioco platform? Chiamato anche platformer, questo popolare tipo di videogioco presenta un personaggio che si muove da e verso piattaforme o supera ostacoli. Uno dei più grandi esempi di sempre è Super Mario Bros. Con pochi semplici passaggi, sarai sulla buona strada per creare i tuoi divertenti giochi!
Nel disegno sotto vediamo come dovrebbe essere il gioco. Il giocatore controlla in questo caso lo sprite Cat che salta sulle piattaforme per prendere le monete o nemici...

Ecco cosa faremo in ogni parte:
A. Creare gravità, caduta e atterraggio
B. Gestire pendii e pareti ripide
C. Fai saltare Cat in alto e in basso
D. Aggiungere il rilevamento del soffitto
E. Usare una hitbox per lo sprite Cat
F. Aggiungere una migliore animazione della camminata
G. Creare il livello
H. Aggiungere nemici e monete
​
Questo gioco platform può avere alcune difficoltà, ma chiunque può programmarlo se segue i passaggi di questo tutorial. Procediamo con il coding di ogni parte, un passaggio alla volta.​
​
A CREARE GRAVITÀ, CADUTA E ATTERRAGGIO​​​
​
Nella prima parte, aggiungeremo codice di gravità, caduta e atterraggio.
La gravità trascina lo sprite Cat verso il basso...Ma non cade a velocità velocità costante, ma cade più velocemente, e sempre più velocemente quanto più a lungo cade.
Nel gioco platform, Cat atterra quando tocca uno sprite di terra anziché il fondo dello Stage. La codifica è un po' più complicata, perché vogliamo che il terreno abbia colline e alla fine piattaforme!


Per iniziare, clicca sul campo di testo in alto a sinistra dell'editor di Scratch e rinomina il progetto da Senza titolo a Platformer o con il nome che desideri.
​
1. Crea lo sprite terreno (ground)
Nei primi script utilizziamo una forma semplice per il terreno, giusto per capire come funzionerà il codice.
Fai clic sul pulsante Scegli uno sprite quindi seleziona Disegna un nuovo sprite per creare uno sprite temporaneo per il terreno mentre impari il codice platform. Nel Area disegno, usa lo strumento Pennello o Linea per disegnare una forma per il terreno.( vedi anche Scratch disegno vettoriale ) Per rendere le linee più spesse o per cambiare colore puoi usare il cursore Contorno. Assicurati di disegnare una leggera pendenza a destra e una ripida pendenza a sinistra. (prendi esempio dall'immagine sotto)

Apri l'Info Area dello sprite e rinomina lo sprite terreno . Inoltre, rinomina lo sprite Sprite1 Cat .
​
2. Aggiungere il codice gravità e atterraggio
Ora che abbiamo uno sprite per il terreno, dobbiamo far cadere Cat e atterrarci sopra.
Seleziona lo sprite Cat . Nella categoria arancione Variabili , fai clic sul pulsante Crea variabile e crea una variabile, (seleziona Solo per questo sprite) denominata velocità y . Quindi aggiungi il seguente codice allo sprite Cat :
​

Il blocco porta dimensione a 35% serve per ridimensionare lo sprite Cat.
Questo codice esegue due azioni nel suo ciclo per sempre : ➊ fa cadere Cat finché non tocca lo sprite terreno e poi âž‹ solleva Cat se si trova in profondità nel terreno.
Con queste due sezioni di codice,Cat cadrà, colpirà il terreno e poi si rialzerà se necessario, per poi fermarsi sopra lo sprite terreno .



in aria che cade giù colpisce lo sprite terra e si rialza si ferma sul terreno
Il codice di caduta in ➊ sottrae 1 dalla variabile velocità y e poi sposta la posizione y dello sprite Cat di velocità y , facendo cadere Cat sempre più velocemente.
Ma il blocco per sempre âž‹ eseguirà un loop finché lo sprite Cat non toccherà più lo sprite terreno. All'interno di questo loop, la velocità y è impostata su 0 in modo che il Cat smetta di cadere ulteriormente. Il blocco cambia y di 1 solleverà un po' lo sprite Cat . Il blocco ripeti fino a quando non sta toccando terreno continua a sollevare lo sprite Cat finché non è più sprofondato nello sprite terra . Ecco come Cat rimane in cima al terreno, indipendentemente dalla forma dello sprite terreno .
​
3. Rimuovere il ritardo di sollevamento dal terreno
Se proviamo il codice si può notare che Cat toccando il terreno continua a cadere per poi risalire, e questo non ci piace...
Non vogliamo che Cat attraversa il terreno nella caduta, quindi dobbiamo usare la funzionalità di un blocco personalizzato.
Creiamo un blocco personalizzato dal nome tocca terreno e mettiamo la spunta su Esegui senza aggiornare lo schermo.

L'uso del blocco "tocca terreno" consente di spostare Cat di 1 pixel alla volta fino a quando non tocca più il terreno, ma fatto molto piu' rapidamente, infatti se proviamo il nuovo codice, Cat a differenza di prima si ferma appena tocca il terreno.

4. Far camminare Cat nello area stage
Per far camminare Cat a sinistra e destra, possiamo semplicemente aggiungere questo script sotto il blocco tocca terreno.
Si noti come il blocco personalizzato 'tocca terreno' che abbiamo già scritto fa sì che il nostro Cat cammini su dei pendii!

Questo codice è molto semplice: premendo freccia sinistra il gatto punta verso sinistra ( -90 ) e sposta la posizione x di -4 (verso sinistra); premendo freccia destra il gatto punta verso destra e sposta la posizione x di 4 (verso destra).​
​
PUNTO DI SALVATAGGIO
​Fai clic sulla bandierina verde per testare il codice scritto. Trascina sprite Cat verso l'alto con il mouse e lascialo andare. Assicurati che Cat cada nel terreno senza mai sprofondare e poi prova a camminare con i tasti freccia sx e dx. Quindi fai clic sul segnale di stop rosso e salva il programma.

B GESTIRE PENDII E PARETI RIPIDE
Lo sprite terreno ha colline e pendii su cui Cat può camminare, e puoi cambiare lo sprite terreno in qualsiasi forma nel Paint Editor. Ma ora il problema è che lo sprite Cat può camminare sul pendio ripido a sinistra con la stessa facilità con cui può camminare sul pendio dolce a destra. Questo non è molto realistico. Vogliamo che il pendio ripido blocchi Cat Per fare questo, apporteremo una piccola modifica ai blocchi del codice di camminata.
A questo punto, gli sprite stanno diventando sovraffollati con un sacco di script diversi. Quindi, fai clic destro sulla Area script e seleziona Riordina i blocchi per riorganizzare gli script in righe ordinate.
​
5. Aggiungere il codice di pendenza ripida
Ora dobbiamo modificare il codice di camminata dello sprite Cat e aggiungere anche del nuovo codice. Invece di cambiare semplicemente la posizione x di un valore particolare, useremo un nuovo blocco personalizzato. Chiamiamolo camminata e diamo a questo nuovo blocco personalizzato due argomenti testo chiamati direzione e passi. Un argomento è un po' come una variabile, ma puoi usarlo solo nel blocco personalizzato. Assicurati di selezionare la casella di controllo Esegui senza aggiornamento schermo !


Questo codice richiede anche di creare una variabile per lo sprite Cat denominata pendenza (che dovrebbe essere solo per questo sprite). Useremo questa nuova variabile per determinare se un pendio è troppo ripido perché Cat possa salirci. Questo codice è un po' complicato, ma lo esamineremo passo dopo passo. Per ora, rendi il codice dello sprite Cat simile al seguente:

Vogliamo che Cat cammini per 4 unità, come abbiamo fatto prima, quindi usiamo -4 e 4 nello script di camminata quando chiamiamo il blocco camminata. Nel blocco definisci camminata, il blocco di input direzione e passi viene usato nei blocchi punta in direzione e cambia x di. Questo rende il codice più compatto, perché possiamo usare lo stesso script per spostare il gatto a sinistra (con il blocco direzione -90 e passi -4) o a destra (con il blocco direzione 90 e passi 4).
Il codice nel ciclo ripeti fino a quando usa la variabile pendenza per determinare se la pendenza è una pendenza percorribile o un muro che dovrebbe bloccare il progresso dello sprite Cat. La pendenza inizia a 0 e cambia di 1 ogni volta che il ciclo ripeti fino a quando solleva la posizione y dello sprite Cat di 1. Questo ciclo continua a girare finché Cat non tocca più il terreno o la variabile pendenza è uguale a 8.
Se la variabile pendenza è minore di 8, allora la pendenza non è così ripida. Cat può risalire la pendenza, quindi lo script camminata non deve fare altro.
Ma se la variabile pendenza è = 8 , il ciclo ripeti fino a quando smette di girare. Questo codice significa lo sprite è stato sollevato di 8, ma sta ancora toccando lo sprite terreno, quindi deve essere una pendenza ripida. In tal caso, dobbiamo annullare il sollevamento e il movimento di camminata. I blocchi cambia y di -8 e cambia x di -1 * passi annullano il movimento di Cat.

Pendenza dolce: lo sprite Cat viene sollevato di 8 gradini e non tocca più il terreno. Lo sprite Cat può camminare su questa pendenza.

Pendenza ripida: lo sprite Cat viene sollevato di 8 gradini ma tocca ancora il terreno, perciò non riesce a salire su questa pendenza.
PUNTO DI SALVATAGGIO
Fai clic sulla bandierina verde per testare il codice finora. Usa i tasti freccia per far camminare Cat. Cat dovrebbe riuscire a salire il pendio dolce sulla destra, ma il pendio ripido sulla sinistra dovrebbe fermarlo. Fai clic sul segnale di stop rosso e salva il programma.
​

C FAI SALTARE CAT IN ALTO E IN BASSO
Una volta completato il codice di camminata, aggiungiamo il salto. Nei giochi di piattaforme, il giocatore può fare un salto corto premendo rapidamente il pulsante di salto o saltare più in alto tenendo premuto il pulsante di salto, quindi dovremo escogitare qualcosa di un po' più avanzato del codice di salto classico .
​
6. Aggiungere il codice salto
Creiamo prima una variabile solo per questo sprite chiamata in aria . Questa variabile verrà impostata a 0 ogni volta che lo sprite Cat è a terra. Ma in aria inizierà ad aumentare quando lo sprite Cat salta o cade. Più grande è il valore della variabile in aria , più a lungo Cat sarà stato sollevato da terra e in aria.
Aggiungi questo script allo sprite Cat :
​
​

Il ciclo infinito continua a controllare se il tasto barra spazio è premuto. Se lo è, questo darà allo sprite Cat una velocità di 12 , ovvero lo sprite Cat si muoverà verso l'alto. Ma nota che ci sono due condizioni affinché il gatto continui a muoversi verso l'alto: il giocatore deve tenere premuto barra spazio e la variabile in aria deve essere inferiore a 8 .
Modifichiamo due degli script sprite Cat esistenti per aggiungere la variabile in aria che limita l'altezza massima di salto di Cat.
1


2
Quando il giocatore tiene premuto per la prima volta il tasto spazio per far saltare Cat, la variabile velocità y viene impostata a 12. Ciò fa sì che il codice nel ciclo infinito nello script 1 modifichi la posizione y dello sprite Cat con la velocità y positiva , spostandolo verso l'alto.
All'inizio del salto, la variabile in aria aumenta ma è ancora inferiore a 8. Quindi se il giocatore continua a tenere premuto il tasto spazio, la velocità y continua a essere impostata a 12 invece di diminuire a causa del blocco di modifica della velocità y di -1 . Ciò fa sì che il salto vada verso l'alto più a lungo rispetto a se il giocatore avesse tenuto premuto il tasto spazio per una sola iterazione attraverso il ciclo. Ma alla fine in aria diventerà uguale o maggiore di 8 , quindi non importerà se il tasto spazio viene premuto. Ricorda che entrambe le condizioni, tasto spazio premuto e in aria < 8 , devono essere vere affinché il codice all'interno del blocco se allora venga eseguito.
A questo punto, la variabile velocità y diminuirà come previsto e lo sprite Cat alla fine cadrà. Nello script 2 , quando Cat è a terra, la variabile in aria viene reimpostata a 0 .

PUNTO DI SALVATAGGIO
Fai clic sulla bandierina verde per testare il codice. Premi il tasto spazio per saltare. Premendo rapidamente il tasto dovrebbe verificarsi un piccolo salto. Tenendo premuto il tasto spazio dovrebbe verificarsi un salto più alto. Assicurati che il gatto possa saltare solo mentre è a terra e non possa fare doppi salti. Quindi fai clic sul segnale di stop rosso e salva il programma.
​
Nella prossima parte affronteremo il codice per il rilevamento del soffitto, come usare una hitbox per sprite Cat, aggiungere una migliore animazione della camminata...


