Win 32 или улучшенный доступ к карте памяти

Мне рассказали о файлах, отображенных в памяти, как о возможном способе быстрого ввода-вывода файлов для хранения 2-мерной карты игровых тайлов. В игре будут частые обновления данных, где я буду знать строку / столбец для обновления, чтобы я мог получить прямой доступ таким образом в массиве. Однако, глядя на некоторые примеры, я не понимаю, как это будет работать.

У кого-нибудь есть небольшой пример создания, чтения, & запись в файл карты памяти структуры, где результатом будет массив 1D, чтобы я мог получить к нему доступ для своей игры в виде карты [row * MAX_ROW + col] .tileID = x; например. Повысить или выиграть 32 было бы хорошо, у меня нет предпочтений, но я нахожу примеры в Интернете несколько запутанными и часто испытывают трудности с преобразованием их в желаемый результат.

1

Решение

Вот пример, который выглядит несколько понятным: Проблема с увеличенной памятью отображаемых файлов: они идут на диск вместо ОЗУ

Обратите внимание на член .data (), который дает вам символ *, вы можете привести его к указателю на массив того, что вы хотите, при наличии достаточного количества памяти и выйти из себя.

Тем не менее, я очень подозреваю, что отображенные в память файлы являются неправильным решением здесь. Почему бы просто не загрузить свой уровень с помощью обычного C ++ (вектор, классы, ifstreams и т. Д.), Изменить его так, как вам нравится, и снова записать его, когда вы закончите, если хотите, чтобы изменения были сохранены на диск?

3

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

Других решений пока нет …

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