многомерный массив — C ++ 2D Tile Engine World Производительность загрузки

У меня есть 2D платформерная игра, очень похожая на Terraria, и она основана на миллионах плиток, которые создают мир. Сейчас я пытаюсь найти эффективный способ загрузки только нужных плиток.

У меня есть двумерный массив целых чисел, каждое число связано с определенной текстурой плитки. Я сохраняю весь этот двумерный массив, прямо сейчас, который имеет размер 6509×6509. Моя проблема в том, что когда я запускаю игру и вхожу в мир, на загрузку всего текстового файла, содержащего массив 2d, уходит смешное количество времени и памяти. Мне нужен способ загружать куски мира, которые окружают игрока, а не весь предмет, и более отдаленные части мира будут освобождены.

Вот мой код о том, как я загружаю мир:

std::ifstream load("game_save");

int offset;

for (int x = 0; x < 6509; x++)
{
for (int i = 0; i < 6509; i++)
{

load >> offset;

world.grid[x][i].render = offset;

load.ignore();

}

}

load.close();

Это читает файл и загружает его в 2D-массив

Вот функция сохранения:

std::ofstream save("game_save");

for (int x = 0; x < 6509; x++)
{

for (int i = 0; i < 6509; i++)
{
save << world.grid[x][i].render;
save << " ";

}
}

Я так запутался, как придумать более простой способ загрузить мир. Любой совет приветствуется

1

Решение

Задача ещё не решена.

Другие решения


По вопросам рекламы [email protected]