Изометрическая структура данных игры и рендеринг - PullRequest
0 голосов
/ 15 января 2012

Я начинаю разработку двумерной изометрической (плиточной, похожей на roguelike) игры и собираю мозговой штурм с такой структурой данных, которую я бы использовал для хранения данных времени выполнения, таких как плитки и объекты, но я не хочу использовать двумернуюмассив (так как мир будет огромным).Как бы я справился с рендерингом в таких случаях?

1 Ответ

1 голос
/ 15 января 2012

Хотя вы, возможно, с большим успехом будете спрашивать по https://gamedev.stackexchange.com/ Я попытаюсь представить несколько идей:

Вам следует создать класс Tile, который может содержать коллекцию сущностей на этой плитке.Кроме того, объекты могут содержать ссылку на плитку, на которой они расположены.

Что касается представления карты, то это зависит от того, как карта будет представлена.Если у вас есть карта фиксированного размера, вы можете использовать 2D-массив (массив будет содержать только ссылки на тайлы, которые могут быть нулевыми, если в данный момент не нужны), в противном случае вы можете использовать карту, индекс которой будет положением тайла.Затем запросите карту для плиток, которые нужно отобразить.

Кроме того, вы можете использовать кэширование и загрузить несколько плиток, которые окружают отображаемую область.Когда плитки находятся вне этой области кэширования и вам нужна память, они могут быть удалены с карты.

...