In che modo un gioco 2D come Zelda gestisce il personaggio dietro gli edifici in cui è mostrata solo una parte di lui?


28

Sto cercando di sviluppare un semplice gioco in stile Zelda. Ho trovato questo argomento molto utile

In che modo LoZ: A Link to the Past ha gestito le collisioni delle sotto-tessere?

che sto usando come riferimento per sviluppare il mio meccanismo di rilevamento delle collisioni. Tuttavia, c'è qualcosa che non sono riuscito a capire. Quando Link è dietro gli edifici, viene mostrata solo una parte di lui. Qualcuno può aiutarmi a capire come si può ottenere questo effetto? La costruzione non fa parte dello sfondo?


Mi piace pensare allo stile di rendering con uno strato di terra (erba, piastrelle, ecc.), Uno strato di oggetti (pentole, nemici, shurbs, link, ecc.) E uno strato di cielo (tetti, tetti sollevati, cime di alberi) , eccetera). La logica per spostare le cose tra i livelli può essere un po 'strana nell'esempio dei vasi, ma un'altra questione.
Benjamin Danger Johnson,

Risposte:


32

I giochi piastrellati 2D di solito hanno più livelli che vengono visualizzati in diversi livelli - alcuni vengono visualizzati in background altri sopra il giocatore.

Quella parte del tetto rende sopra il giocatore ed è per questo che il giocatore può andare dietro quell'edificio.

Ecco l'esempio di immagine del mio gioco per spiegare meglio: inserisci qui la descrizione dell'immagine


Quindi l'edificio stesso può far parte dello sfondo, ma il tetto fa parte di uno strato diverso disegnato sulla parte superiore dello strato con gli sprite?
Tinadm,

2
@Tinadm non deve necessariamente essere l'intero tetto, potrebbe essere solo la sezione del tetto che attirerebbe sulla parte superiore del giocatore che è resa dopo tutto il resto.
Tetrad,

7
+1 per una grafica straordinaria. Aiuta davvero gli studenti visivi.
UnderscoreZero

1
Sono abbastanza sicuro che i vecchi JRPG SNES usassero la stessa tecnica. FF2, FF5, ecc. La tecnica è ancora valida.
Hatoru Hansou,

1
Puoi vederlo abbastanza bene con gli emulatori, ad esempio ZSNES, che ti consentono di accendere e spegnere manualmente i singoli livelli.
Tobias Kienzler,

5

Mentre la risposta di Blodyavenger copre il modo in cui molto probabilmente viene eseguita, ecco un'altra possibilità che consentirebbe un facile cambio di prospettiva (ad esempio quattro o otto direzioni diverse o alcuni livelli di elevazione della videocamera):

Considera la vista dall'alto verso il basso della tua mappa, ad es

  ABCDEFGHIJKL
1 +-----=----+
2 |  .    .  |
3 |    X   o |
4 | .        ||
5 |    .   . |
6 +--=-------+

Dove, diciamo, Xsegna un alto pilastro. Per ogni oggetto memorizzi immagini di tutte le possibili prospettive (o usi le stesse ...), che possono essere arbitrarie alte molte tessere. Ora quando disegni, inizia semplicemente con la colonna o la riga che si trova sul retro nella prospettiva corrente, ad esempio la riga 1 se guardi da sud. Dopodiché disegna la riga / colonna il secondo più sul retro e così via. In questo modo, quando qualcosa è più in alto di una tessera (allungata alla prospettiva corrente), semplicemente supererà ciò che si nasconde dietro.

(Mi dispiace per la mancanza di belle foto, non sono troppo bravo con la grafica applicata ...)


Nota come puoi facilmente modificare l'elevazione della fotocamera in questo modo allungando le trame degli oggetti
Tobias Kienzler,

1

Dovresti avere una variabile per la profondità e avere prima le immagini con la profondità maggiore, poi le altre con la profondità più bassa. E la profondità di ogni oggetto dovrebbe essere uguale al negativo della sua coordinata y.

Depth=-y

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.