gmexe

Блог про любимый комп и все что с ним связанно!

Среда, 1.5.2024
Главная » Примеры
Генератор карт, случайная карта, бесконечная карта, как сделатьМногие из нас играли в 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©

Категория: Примеры | Рейтинг значимости: 62364 | Добавил: gmExe | Дата: 26.01.2011 | Комментарии (26)

Просто интересный эффект. Я бы даже сказал чудеса математики. Что самое обидное Game maker очень медленно его рисует. Этот эффект отлично работает к примеру на Delphi. Там со скоростью проблем не возникло! Что ж будем довольствоваться тому, что есть… ... Читать дальше

Категория: Примеры | Рейтинг значимости: 2788 | Добавил: gmExe | Дата: 23.01.2011 | Прокомментируй!

Эту красивую реализацию рисования шестеренок я позаимствовал с примера из purebasic. Шестеренками можно управлять, добавлять зубчики, изменять размеры, и т.д.

... Читать дальше

Категория: Примеры | Рейтинг значимости: 13104 | Добавил: gmExe | Дата: 22.01.2011 | Прокомментируй!