@gth-other

Как лучше хранить уровень в 2D платформере?

Я хочу создать 2D платформер в целях саморазвития, по механикам схожий с марио. Есть C++ и SDL2 (последним довольно хорошо владею). Не пойму как лучше хранить все объекты и существ в памяти, ведь все это многообразие будет разных размеров.

Как это лучше организовать, чтобы потом не пришлось переписывать весь проект?
  • Вопрос задан
  • 144 просмотра
Решения вопроса 1
vabka
@vabka
Токсичный шарпист
Не пойму как лучше хранить все объекты и существ в памяти, ведь все это многообразие будет разных размеров.

А что не так с размерами?

Вообще есть достаточно неплохая методика - ECS.
Каждый объект - это Entity, по сути просто уникальный идентификатор, чтобы можно было отличать одну entity от другой.
Для каждого "атрибута" создаётся component - это может быть, например, текстура, размеры, координаты на карте, хитбокс, и так далее. Для персонажей это может быть hp и отношение к "стороне" (друг к игроку или враг, например).
А для всей игровой логики создаются system - они должны будут реагировать на события, которые посылают другие системы или отрабатывать каждый условный кадр, например.
В них как раз определяется и отрисовка всех текстур/спрайтов, проверяется, нужно ли нанести урон игроку, и так далее.

Советую поискать готовые ECS-фреймворки для вашего языка, чтобы не велосипедить с нуля.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы