Come gestisco gli oggetti di gioco con due profondità?


8

parte inferiore dell'oggetto sotto il giocatore, la parte superiore sopra il giocatore

Voglio essere in grado di fare ciò che vedi nell'immagine, ma con una sola parete. Il giocatore dovrebbe essere in grado di camminare su entrambi i lati dello stesso oggetto . Cioè, lo stesso muro è sotto l'eroe quando scendo da esso, ed è sopra l'eroe se vengo da esso.

È come due profondità nella stessa parete, quindi non è solo una questione di disegnarla prima o dopo. Potrei tagliare l'oggetto in due, ma sarebbe la soluzione semplice (e forse computazionalmente costosa). Come dovrei farlo?


3
Dividere l'oggetto in due sembra il modo più naturale di farlo. La parte superiore è dietro il personaggio e la parte inferiore è tra il giocatore e il personaggio. Ancora non molto costoso, devi solo assicurarti che entrambe le parti non si allontanino l'una dall'altra.
Fabinout,

Probabilmente dovrò farlo, ma altre idee?
Xkynar,

Risposte:


8

Ecco tre modi per farlo. Quale sarà adatto dipende dal tipo di gioco (graficamente) che stai realizzando.

  1. Come ha già commentato l'utente Fabinout: "Dividere l'oggetto in due ... La parte superiore è dietro il personaggio e la parte inferiore è tra il giocatore e il personaggio". Se stai realizzando un gioco rigidamente basato su tessere (i percorsi mostrati sono gli unici due percorsi possibili vicino al muro), questo è probabilmente un ottimo modo per farlo. Nota che per far funzionare tutto ciò, la distanza tra il percorso superiore e quello inferiore deve essere almeno pari all'altezza del personaggio.

    Uno svantaggio di questo metodo è che aiuta solo in casi come questo particolare; non è una strategia generale per impilare gli sprite.

  2. Disegna tutti gli sprite - sia il giocatore che lo scenario - dall'alto verso il basso in ordine delle loro posizioni di "livello del suolo" (base del muro, piedi del giocatore). Ciò farà apparire automaticamente il muro sul lato corretto, ed è una strategia comune per i giochi in stile "isometrico" e "RPG 2D".

    Un altro vantaggio di questo è che generalmente sembra buono anche se gli oggetti si incrociano, ad esempio personaggi che non bloccano il movimento degli altri; camminando attraverso un campo di erba alta. Gli svantaggi sono la necessità di determinare in modo efficiente l'ordine di disegno (ad es. Ordinare i tuoi sprite o disporre di una matrice 2D di tessere che sappiano quali sono gli sprite in essi) e che diventa complicato quando si hanno oggetti che non sono tutti radicati visivamente sul stesso livello del suolo.

  3. Avere uno "strato frontale" e uno "strato posteriore" in cui il tuo personaggio occupa l'uno o l'altro (e il muro è disegnato dietro ma prima di fronte). A seconda di come ti avvicini al muro, il personaggio viene passato al livello anteriore o posteriore dalle zone di innesco. Ecco come i giochi di Sonic the Hedgehog gestiscono cose come loop-the-loop.

    Il vantaggio è che puoi avere essenzialmente due piani 2D indipendenti su cui costruire i tuoi elementi di livello. Tuttavia, questo è più appropriato per un gioco in cui il movimento verticale sta saltando in alto, mentre dalla forma della tua grafica, il tuo gioco sembra essere uno in cui il movimento verticale sullo schermo si muove avanti / indietro sul terreno, e ci sono molti più di due diverse posizioni in quella dimensione.


L'uso di livelli come il n. 3 è il numero di trucchi di scorrimento laterale, se non della maggior parte delle console precedenti.
Patrick Hughes,

1

Disegna gli oggetti in ordine di Yvalore, quindi gli oggetti "più lontani" (più in alto sullo schermo) vengono disegnati prima / sotto gli oggetti "più vicini". Così semplice.

Più in generale, basta dare agli oggetti un valore di profondità (che potrebbe essere implicitamente basato Yo impostato in modo esplicito, a seconda del gioco e delle esigenze) e renderizzare in questo ordine.

Questo è "l'algoritmo del pittore" al lavoro.

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.