Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как расставлять облака в игре, нужно расставлять быстро и красиво 
:(
    Опции темы
zim22
Дата 12.10.2011, 13:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


Профиль
Группа: Завсегдатай
Сообщений: 2682
Регистрация: 15.1.2009
Где: Украина

Репутация: нет
Всего: 69



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


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

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


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

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


user posted image


--------------------
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Алгоритмы | Следующая тема »


 




[ Время генерации скрипта: 0.0513 ]   [ Использовано запросов: 20 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.