PDA

Просмотр полной версии : Появлние мувика на незанятом экранном пространстве


zanozza
21.07.2006, 03:28
Здравствуйте, уважаемые!

Что имеем: пространство экрана. Часть занята меню, часть - несколькими "плавающими" мувиками.

Что хочется: чтобы новый мувик появлялся на незанятом, свободном пространстве экранной области (или) с минимальным перекрытием с другими мувиками.
Все мувики создаются AS, и располагаются на разной глубине.

Не хотелось бы работать с простым перебором...

Подскажите пожалуйста возможное решение.

OlenKa
21.07.2006, 11:41
:( не совсем понимаю как именно все должно выглядеть ...

Kinsler
21.07.2006, 11:45
ну чисто теоретически такое можно сделать наверное только для частных случаев
а вообще можно перебором опросить все мувики присутсвующие на сцене на предмет их положения и размеров
найти наиболее свободное пространство...
и поместить туда новый
но это сложный алгоритм

zanozza
21.07.2006, 11:51
:( не совсем понимаю как именно все должно выглядеть ...
Вот примерно так:

zanozza
21.07.2006, 11:55
... это сложный алгоритм
Вот потому я и хотел бы узнать возможные "пути обхода".
Чисто алгоритмически я представляю как это сделать, но уж больно навороченный код будет...

Это как кривая Безье, формально - достаточно сложная, а на практике - очень простым циклом строится.

OlenKa
21.07.2006, 12:04
я так понимаю имеющиеся мувики у тебя меняют координаты, да?

OlenKa
21.07.2006, 12:06
если да, то я думаю в onEnterFrame по рандому задавай координаты для поключаемого мувика, проверяй перекривает ли он уже имеющиеся, если да повторяй цикл если нет то вставляй мувик.

zanozza
21.07.2006, 12:11
.. проверяй перекривает ли он уже имеющиеся, если да повторяй цикл если нет то вставляй мувик.
Как бы не зациклить навечно...

Резюме: что предпочтительнее - перебор или некий хитрый алгоритм?

OlenKa
21.07.2006, 12:18
тебе нужно только один раз вставить мувик, да? если это действительно так, то тебе достаточно выйти из цикла когда найдешь подходящее место. и тогда ничего не зациклиться :) Никакой хитрости здесь нет, простой рандом. для облегчения задачи можно вообще разбить всю рабочую область на несколько зон (где могут находиться мувики) . например там на 12. создать соответсвующий масив (такй размерности) в котором елемент со значением 1 будет соответсвовать занятой области. вот. такие вот у меня мысли по этому поводу :rolleyes:

zanozza
21.07.2006, 12:20
Кстати, насчет зон - это мысль!

OlenKa
21.07.2006, 12:35
:) очень рада что смогла помочь