2011-03-10 12 views
9

enter image description here enter image description here enter image description here enter image description herepassaggi attraverso piastrelle isometriche

Sopra sono quattro immagini di un personaggio che cammina lungo il terreno dal basso a destra verso l'alto a sinistra. Puoi vedere che l'ordine di disegno non è corretto nel terzo pannello.

Qui non sembra esserci un "ordine corretto". Per esempio se invece di un ragazzo piccolo avessimo uno sprite di un gatto che passava attraverso la porta, non importa se prima si disegna la porta o prima il gatto, sarebbe sbagliato.

enter image description here enter image description here

Come altri motori di gioco gestire questa situazione? Qualcuno hack per evitare che questa situazione accada? Disegnare un buffer z a mano? Qualche altra opzione che non mi è venuta in mente?

+0

Forse definire un insieme di "livelli" per l'oggetto (o avere oggetti separati del tutto), con il primo livello disegnato al di sotto del secondo, ecc.? Non so per certo, ma quello sarebbe il mio approccio ingenuo. Avrei messo una taglia su questo se avessi davvero avuto bisogno di sapere questo genere di cose. – Blender

+0

Grazie blender. In realtà ho dei livelli nel mio motore, ma le tessere che si trovano in diversi strati non influenzano l'ordine di disegno in confronto con gli sprite. – Bemmu

+0

Stavo parlando di livelli per ogni singolo sprite. Devo lavorare sulla mia terminologia ... – Blender

risposta

5

Il trucco è semplicemente dividere la tessera in pezzi. Disegna la metà destra dell'arco, poi il personaggio e poi la metà sinistra.

+0

Hmm quindi una tessera non è solo un'immagine disegnata al centro di una tessera, ma può effettivamente essere una raccolta di immagini agli offset. – Bemmu

+1

Risposta semplice ma mi ha fatto pensare. Se aggiungo la funzione per avere gruppi di tessere (comunque una caratteristica utile), allora potrei creare un gruppo di tessere con queste due parti. – Bemmu

0

Un'alternativa alla divisione del riquadro consiste nel rendering di tutto con valori z e un z-buffer come una corretta app 3d. Se generi la tua grafica in un pacchetto 3D, puoi probabilmente generare i relativi valori z allo stesso tempo.

Problemi correlati