top of page
Immagine del redattoreRobNico

Platformer game 2.0 #2parte

Aggiornamento: 3 nov 2020

Per riassumere qui sotto lo script completo della #1 parte del progetto !

Questo include:

  • Gravità

  • Rilevamento pavimento / pendenza

  • Camminare

  • Salto

  • Rilevamento del soffitto



HitBox

Avete notato che lo sprite può impigliarsi con alcune parti sul bordo di una piattaforma?

Perché succede questo?

Bene quando usiamo il 'tocca terra', questo include le braccia e qualsiasi altra parte che sporge del corpo dello sprite.

Ci sono anche altri problemi, quando cambiamo direzione o proviamo ad animare lo sprite in modo che il suo costume cambi, cambia la forma e questo influenza ciò che sta toccando.

La soluzione a questo problema è sostituire il nostro bellissimo costume del nostro personaggio con una scatola!

La cosa bella di una scatola è che ha bordi perfettamente lisci e non può essere catturata da nulla.

Questa scatola è conosciuta come hitbox e verrà utilizzata per rilevare quando viene 'colpita' da un altro sprite (nel nostro caso, quando colpisce il suolo).

Tuttavia, anche se usiamo la scatola per rilevare le collisioni, mostreremmo ancora lo sprite al giocatore.!

Per disegnare una hitbox devi aggiungere un costume "nuovo" al tuo sprite e chiamarlo "hitbox" (o qualcos'altro che ricorderai) dovrebbe avere all'incirca le stesse dimensioni dello sprite del gioco, ma essere un rettangolo pieno e perfetto.

Dovrebbe anche essere perfettamente centrato orizzontalmente... con Scratch 2 avevamo disponibile la funzione "definisci centro del costume" che non esiste più con Scratch 3.

Vediamo la procedura con il Paint editor di Scratch 3.

Andiamo su Costumi dello sprite, tasto destro del mouse e duplica costume, a questo punto seleziona il costume duplicato, vai sul editor di Paint e con il tasto + porta la grandezza dello sprite quasi a coprire l'intera area del editor.



Ora seleziona il colore nero come riempimento del nostro Hitbox, vai sulla voce rettangolo e traccia il rettangolo sopra lo sprite lasciando alcune parti laterali scoperte, come in figura per capire.


Ora non ci resta che cancellare lo sprite ping, come possiamo fare... semplicemente selezioniamo il rettangolo con seleziona quindi andiamo a posizionarlo dietro tramite secondo piano, perfetto a questo punto selezioniamo lo sprite ping e tasto cancella.

Rinominiamo il costume con hitbox, con questo abbiamo concluso...



Perfetto se abbiamo eseguito tutto perfettamente, con il costume hitbox selezionato, se andiamo ad eseguire lo script vediamo che il rettangolo si muove in modo regolare tra le piattaforme senza incastrarsi.

Ok ora non resta che modificare lo script per far apparire i costumi al posto del hitbox, vediamo come...

Le modifiche allo script sono davvero abbastanza facili, tutto ciò che dobbiamo fare è cambiare il costume di hitbox all'inizio del loop di gioco, quindi passare al costume che vogliamo che il giocatore veda in fondo al loop di gioco.

Tutti i controlli quindi utilizzano la hitbox, ma l'unico costume che il giocatore vede è quello che abbiamo impostato per ultimo!



Animazione

È incredibile quanto una piccola cosa come l'animazione del personaggio di un gioco possa improvvisamente portare a un livello superiore un game!

Questi sono i costumi che useremo, se non li avete scaricati il link è qui.

Cosa molto importante è l'ordine dei costumi:

1° Stand

2° Jump

3° Fall

e dal 4° in poi la camminata (Walk 1-8)

questo vale anche se decidete di usare altri costumi.


Parliamo prima di tutto di come ottenere un ciclo regolare dei costumi da camminata.

Per fare questo dobbiamo sapere:

  • quanti fotogrammi di animazione ci sono nel ciclo della passeggiata? (nel nostro caso, sono 12)

  • Quanto velocemente vogliamo cambiare fotogramma, se passiamo al fotogramma successivo con la stessa velocità con cui gira il nostro gioco, allora cambierà 30 volte al secondo, è troppo veloce!

Cambieremo i costumi una volta ogni due fotogrammi per rallentarlo.

Per prima cosa dobbiamo creare un nuovo blocco personalizzato chiamato "costume" e una nuova variabile chiamata "frame".



Ora dobbiamo modificare il nostro loop principale, ciò significa che se non si preme sia il tasto sinistro che quello destro, il frame viene impostato su 0 (questo significa che siamo fermi). La fine del ciclo per sempre utilizza il nuovo blocco personalizzato "costume" per impostare il costume appropriato, e infine il blocco personalizzato "cammina" cambia frame di 0,5

Vediamo lo script:



Slancio

Avrete notato che il movimento dello sprite a destra e a sinistra ha una velocità costante, Il motivo è che non ha uno slancio orizzontale , abbiamo una velocità y, ma nessuna velocità x, cioè quando noi clicchiamo il pulsante il nostro personaggio fa quattro passi per volta, perché se andiamo a vedere nel blocco cammina noi inviamo come valori 4 e -4 quindi il nostro personaggio si sposta sempre a una velocità costante, questo ovviamente è un sistema di movimento poco realistico perche nessuno di noi si sposta a velocità costante durante una passeggiata, ecco questo è quello che Griffpatch cerca di fare su questo punto dare appunto una leggera accelerazione ai movimenti orizzontali del nostro personaggio arrivando fino a un punto massimo che è praticamente quello che abbiamo ora, quindi invece di far muovere il personaggio in maniera costante farlo leggermente accelerare quando parte fino appunto ad arrivare al movimento che abbiamo ora e poi farlo leggermente decelerare quando si ferma, questo dovrebbe rendere tutto molto più naturale, chiaramente essendo un dettaglio potete decidere a vostra discrezione se introdurre questo dettaglio nel vostro progetto. Vediamo come variare il nostro script per aggiungere la velocità x.

Per avere più slancio crea una nuova variabile con il nome "velocità x " e sostituire parte dello script con quello in figura sotto!

La prima riga rallenta il giocatore (riducendo la sua velocità x ogni frame)

Con il tasto premuto cambia solo la velocità x del giocatore, quindi più a lungo lo si tiene premuto, più velocemente ci si muove.

L'effettivo blocco personalizzato camminata viene ora chiamato ogni volta che la velocità del giocatore supera una data velocità (0.5).




Come vediamo dobbiamo sostituire tutto il blocco dei tasti destra e sinistra, inserendo il nuovo script (evidenziato nel rettangolo giallo) con la variabile velocità x, i valori 0.7,1.5,-1.5,0.5,-0.5 sono quelli che impostano la velocità del personaggio.

Infine sostituire anche il blocco cambia frame in fondo alla definizione del blocco personalizzato cammina che cambia il fotogramma dell'animazione.

Ciò che fa è rallentare il ciclo di animazione della camminata quando il giocatore cammina lentamente, e quindi mantiene i piedi a tempo con il loro movimento.


Con questo abbiamo terminato la seconda parte, nella prossima vedremo come creare gli sfondi per i livelli del nostro gioco.

Vediamo il riepilogo di tutti i blocchi di script per lo sprite ping...



 

89 visualizzazioni0 commenti

Post recenti

Mostra tutti

Commenti


bottom of page