Qual è il modo più pratico per implementare la telecamera / viewport in un gioco 2D?
Ho letto che dovrei memorizzare la posizione del mondo dell'oggetto anziché la posizione relativa allo schermo?
Situazione attuale:
Ho implementato un semplice gioco 2D in cui carico oggetti e livelli da file XML. Attualmente il file XML di livello è simile al seguente:
<map>
<tile obj="ground" x="0" y="555" />
<tile obj="ground" x="16" y="555" />
<tile obj="ground" x="32" y="555" />
...
</map>
Tutti gli oggetti hanno una "posizione" di vettore 2D che memorizza la loro posizione corrente sullo schermo.
Quello che voglio che sia:
Nella foto:
- La fotocamera è 800x600 o 640x480
- I blocchi e gli sprite sono 16x16 pixel.
- Le dimensioni del mondo possono variare
- Le coordinate probabilmente dovrebbero essere normalizzate rispetto al mondo, non allo schermo?
- Posizione della finestra relativa alla x, y del giocatore e si sposta quando il giocatore raggiunge la zona morta della telecamera (simile a questo video ).
Sto chiedendo pseudo esempi / articoli, ma se hai bisogno di sapere cosa sto usando per lo sviluppo: SDL e C / C ++.