Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Алгоритмы > Как расставлять облака в игре |
Автор: zim22 12.10.2011, 13:56 |
Здравствуйте. Я пишу игру и возникла необходимость расставлять облака на уровне. Облака друг на друга налазить не должны. Облака могут быть разных форм, но все они трактуются на уровне исходного кода как прямоугольники. На рисунке я привел два примера идеального расставления облаков (с точки зрения моего визуального восприятия). Синим цветом выделен экран, который виден пользователю, желтым цветом - область, в которую игрок попадет если переместится туда. Алгоритм должен иметь возможность принимать такие параметры: 1) Для верхнего рисунка кол-во облаков на экране = 8 минимальное расстояние между облаками = 5 см максимальное расстояние между облаками = 10 см 2) Для нижнего рисунка кол-во облаков на экране = 5 минимальное расстояние между облаками = 2 см максимальное расстояние между облаками = 10 см У меня сейчас есть алгоритм, который расставляет облака - но он слишком долго работает и расставляет их некрасиво. Если интересно - вот алгоритм (на примере для верхнего рисунка) 1) Рандомно поставить в прямоугольной области (размером синего цвета) одну точку 2) Отобразить в этой точке одно облако, если оно не пересекается с другими 3) Повторять пункт 1 пока не будет расставлено 8 облаков ![]() |