Sto scrivendo il motore isometrico in c ++. Ho deciso di adottare un approccio più realistico e fare in modo che i muri occupino spazio tra due tessere, non una singola tessera intera, come mostrato nella figura sotto (proprio come in The Sims).
Il mio problema è che non ho idea di come archiviare i dati relativi alla mappa delle tessere in qualcosa che non è griglia. In questa situazione, credo che dovrò renderlo A * amichevole, quindi ci saranno nodi e bordi tra le piastrelle non divise da muri. Ecco un'altra immagine che mostra ciò che voglio ottenere:
Quindi, ecco le domande:
Come dovrei:
- memorizzare l'intera mappa, sia piastrelle che pareti
- ottimizzalo per il rendering
- usarlo per A * e altri algoritmi piuttosto semplici da implementare su una griglia semplice ma ora usando pareti (bordi) per determinare visibilità, collisione ecc.?