Come gestite le piastrelle irregolari durante il rendering di una mappa delle piastrelle?


13

inserisci qui la descrizione dell'immagine

Ecco cosa voglio fare con la mia mappa delle tessere di cui non sono sicuro. Come puoi vedere le pareti superiori sono molto più grandi di quelle inferiori e laterali (questo è anche un problema con i miei angoli che sono forme strane [più come una L poi un quadrato] così come più grandi dei 40x40px che le mie piastrelle attuali sono ).

inserisci qui la descrizione dell'immagine

Ho anche attaccato il foglio di piastrelle che sto usando per le piastrelle per mostrarti come sono gli angoli e le cime rispetto al resto delle piastrelle.

Quello che sto pensando è che potrei essere in grado di disegnarli usando lo stesso array che ho se uso la larghezza e l'altezza delle piastrelle invece di un set LxA? Non so quanto funzionerà bene, ma se i blocchi che avranno valori diversi saranno blocchi su cui il giocatore / NPC non può calpestare, potrebbe non essere un problema, di nuovo non sono nemmeno sicuro che sia praticabile soluzione.

Il mio codice nel caso tu voglia vedere come lo sto attualmente gestendo: Map.java (pastebin) (modifica: non lo sto gestendo, significa come sto attualmente eseguendo la mappa)

tl; dr - come posso prendere la mia mappa di tessere dall'aspetto 2d e cambiarla per avere tessere di dimensioni diverse? o c'è un modo migliore per fare quello che sto cercando di fare? C'è un nome di un metodo che dovrei cercare mentre google?

Risposte:


19

Esistono due modi standard per farlo.

  • Suddividere le dimensioni delle piastrelle non standard in dimensioni delle piastrelle standard. Quindi quelle strisce di pareti diventano una "pila" di tessere quadrate che sai solo mettere insieme nel tuo editor di livelli. Giochi come i primi giochi di Final Fantasy hanno funzionato in questo modo.
  • Lascia che ogni pezzo di piastrelle sia più alto della tua altezza standard. Allinea le tessere alla parte inferiore del rettangolo delle tessere, consentendo a qualsiasi extra di disegnare più in alto della normale altezza delle tessere. Quando disegni la tua mappa, disegni le tessere partendo dal retro (le tessere quadrate più in alto sullo schermo) e finendo con le tessere in basso (quelle nella parte inferiore dello schermo). Ciò garantisce che le tessere alte in primo piano siano correttamente sovrapposte sopra le tessere sullo sfondo. Nota che in questo approccio, le tue tessere sono ancora limitate a una singola tessera in larghezza.

Puoi fare uno o entrambi questi approcci. Anche i giochi che fanno l'approccio "suddividere in pile di tessere" spesso consentono ad alcuni oggetti (alberi, ecc.) Di infrangere i limiti di altezza delle tessere e imporre semplicemente un ordine di disegno mappa dall'alto verso il basso per assicurarsi che tutti i livelli correttamente.


2
+1 per il secondo approccio. Fondamentalmente questo ti sposta dalla mappa delle tessere agli oggetti sulla mappa.
Kromster dice di sostenere Monica il

Perfetto, grazie mille, ho pensato che potesse essere qualcosa di simile alla seconda opzione, ma volevo assicurarmi di farlo in modo standardizzato. = D
Latenza,

2

Taglia e taglia le tessere di dimensioni strane per adattarle alle dimensioni standard. Il punto centrale di una mappa a tessere è che si ottiene molta velocità e utilità misurando tutto con lo stesso formato.

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.