Quelle est la façon la plus pratique d'implémenter une caméra / fenêtre d'affichage dans un jeu 2D?
J'ai lu que je devrais stocker la position du monde de l'objet au lieu de la position par rapport à l'écran?
Situation actuelle:
J'ai implémenté un simple jeu 2D où je charge des objets et des niveaux à partir de fichiers XML. Actuellement, le fichier XML de niveau ressemble à ceci:
<map>
<tile obj="ground" x="0" y="555" />
<tile obj="ground" x="16" y="555" />
<tile obj="ground" x="32" y="555" />
...
</map>
Tous les objets ont une "position" 2d-vector stockant leur position actuelle sur l'écran.
Ce que je veux que ce soit:
Sur la photo:
- La caméra est de 800x600 ou 640x480
- Les blocs et les images-objets sont de 16 x 16 pixels.
- La taille du monde peut varier
- Les coordonnées devraient probablement être normalisées par rapport au monde, pas à l'écran?
- Position de la fenêtre par rapport aux x, y du joueur et se déplace lorsque le joueur atteint la zone morte de la caméra (similaire à cette vidéo ).
Je demande des pseudo exemples / articles, mais si vous avez besoin de savoir ce que j'utilise pour le développement: SDL & C / C ++.