Який найпрактичніший спосіб реалізувати камеру / область перегляду для 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>
Усі об'єкти мають 2-векторну "позицію", що зберігає їх поточне розташування на екрані.
Що я хочу, щоб це було:
На малюнку:
- Камера є або 800x600, або 640x480
- Блоки та спрайти - 16х16 пікселів.
- Розмір у світі може змінюватися
- Координати, ймовірно, повинні бути нормалізовані щодо світу, а не до екрану?
- Позиція перегляду по відношенню до x, y гравця та переміщується, коли гравець досягає мертвої зони камери (подібно до цього відео ).
Я запитую псевдо приклади / статті, але якщо вам потрібно знати, що я використовую для розробки: SDL & C / C ++.