Какой самый практичный способ реализовать камеру / видовой экран в 2D-игре?
Я читал, что я должен хранить положение объекта в мире, а не положение относительно экрана?
Текущая ситуация:
Я реализовал простую 2D-игру, в которой загружаю объекты и уровни из XML-файлов. На данный момент уровень XML-файла выглядит так:
<map>
<tile obj="ground" x="0" y="555" />
<tile obj="ground" x="16" y="555" />
<tile obj="ground" x="32" y="555" />
...
</map>
Все объекты имеют двухмерное векторное «положение», сохраняющее их текущее местоположение на экране.
Что я хочу, чтобы это было:
На картинке:
- Камера либо 800x600 или 640x480
- Блоки и спрайты имеют размер 16x16 пикселей.
- Размер мира может варьироваться
- Координаты наверное надо нормализовать относительно мира, а не экрана?
- Положение области просмотра относительно x, y игрока и перемещается, когда игрок достигает мертвой зоны камеры (аналогично этому видео ).
Я прошу псевдо примеры / статьи, но если вам нужно знать, что я использую для разработки: SDL & C / C ++.