Многие из нас играли в
Minecraft. По умолчанию, все карты Minecraft генерируются случайным образом по мере передвижения игроков по ним. В теории, масштаб мира Minecraft бесконечен, ну или почти бесконечен (в зависимости от вместимости конкретного жесткого диска).
Я попытался реализовать нечто похожее на
game maker.
Как работает мой алгоритм?
- Создаю двумерный массив. Я назвал его "MAP”. Учтите что максимальный размер одномерного массива в game maker всего 32 000 тысячи. Он будет отвечать за размер нашего мира.
- Задается начальная позиция игрока в мире. В виде MAP[posManMapX,posManMapY] = 1
- Если MAP[posManMapX, posManMapY] = 0, тогда алгоритм воспринимает ее как неизведанную и генерирует ее случайным образом.
- Во время перехода на новую карту алгоритм сохраняет предыдущую карту с именем в виде умноженных координат местонахождения на глобальной карте posManMapX*posManMapY (MAP[posManMapX, posManMapY])
- Если MAP[posManMapX, posManMapY] = 1, тогда алгоритм воспринимает ее как ранее изведанную и пытается загрузить из файла с расширением " .map”, и именем . posManMapX*posManMapY
Все гениально и просто!:)
Скачать пример в .gmk + Exe (1.28 mb)
gmExe.ru©