Показать сообщение отдельно
Старый 11.05.2012, 21:49   #1
den
Дэвелопер
 
Аватар для den
 
Регистрация: 13.02.2010
Сообщений: 1,645
Написано 620 полезных сообщений
(для 2,419 пользователей)
Сообщение Генератор островов

Придумал сегодня очень простой алгоритм генерации островов для своей будущей игры
Может кому нибудь и пригодиться
JavaScript демка (обновляем страничку для генерации)

А теперь для заинтересовавшихся рассказываю суть:
0) Имеется карта. Заполняем её водой.
1) В точке (x0, y0), радиусом r рисуем круг суши.
2) Задаем рандомное число n (у меня оно лежит в пределах [5 ; 10])
3) Теперь повторяем n раз следующее действие: рисуем круг суши, в рандомных координатах, где x принадлежит [x0-r ; x0+r], а y соответственно [y0-r ; y0+r]. И рандомным радиусом, в пределах [0.2r ; 0.5r].
4-5) Делаем тоже самое, что и в пунктах 2-3, но заполняем круги водой.

Пол дела сделано. Осталось сгладить карту. Я делал так:

6) Перебирал все квадраты 2*2 ячеек, усреднял значение высот, и задавал каждой ячейке этого квадрата, это усредненное значение. Если не ошибаюсь, данный метод называется сглаживание по квадрату.



ps:Да я знаю что есть много других, более реалистичных алгоритмов.

Последний раз редактировалось den, 13.05.2012 в 15:28.
(Offline)
 
Ответить с цитированием
Эти 4 пользователя(ей) сказали Спасибо den за это полезное сообщение:
FireOwl (12.05.2012), Hulk-DS (13.05.2012), moka (13.05.2012), YellowAfterlife (14.05.2012)