Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Алгоритмы > Как расставлять облака в игре


Автор: zim22 12.10.2011, 13:56
Здравствуйте.
Я пишу игру и возникла необходимость расставлять облака на уровне. Облака друг на друга налазить не должны.
Облака могут быть разных форм, но все они трактуются на уровне исходного кода как прямоугольники.
На рисунке я привел два примера идеального расставления облаков (с точки зрения моего визуального восприятия). Синим цветом выделен экран, который виден пользователю, желтым цветом - область, в которую игрок попадет если переместится туда.


Алгоритм должен иметь возможность принимать такие параметры:
1) Для верхнего рисунка
кол-во облаков на экране = 8
минимальное расстояние между облаками = 5 см
максимальное расстояние между облаками = 10 см

2) Для нижнего рисунка
кол-во облаков на экране = 5
минимальное расстояние между облаками = 2 см
максимальное расстояние между облаками = 10 см


У меня сейчас есть алгоритм, который расставляет облака - но он слишком долго работает и расставляет их некрасиво.

Если интересно - вот алгоритм (на примере для верхнего рисунка)
1) Рандомно поставить в прямоугольной области (размером синего цвета) одну точку
2) Отобразить в этой точке одно облако, если оно не пересекается с другими
3) Повторять пункт 1 пока не будет расставлено 8 облаков


user posted image

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)