Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Разместить объекты в области (http://www.flasher.ru/forum/showthread.php?t=215634)

art_maestro 24.07.2018 03:25

Разместить объекты в области
 
Вложений: 1
Здравствуйте
Подскажите пожалуйста как реализовать следующую задачу.
Есть 5 объектов и есть 4 области. Из объекта создаются его экземпляры N-количество раз (случайную генерацию я реализую).
Нужно разместить экземпляры в области случайным образом, чтобы они друг на друга не налаживались. Области могут иметь разную форму (например, как на картинке).

ZergMaster 24.07.2018 12:47

у нас есть hitTestObject
Если необходимо, чтобы четко по контуру пересечение было (так как hitTestObject смотрит пересечение именно ограничительной рамки, то есть, квадрат, в который вписывается объект), то применив смекалку, можно, опять же, решить эту проблему при помощи hitTestObject.

Также можно в объектах создать массив точек, по которому будем проверять пересечение. Собственно, это аналогично первому варианту, только там это можно сделать через много мувиков внутри объекта, а тут можно просто кодом описать те же самые векторы координат.

art_maestro 24.07.2018 13:36

За hitTestObject я знаю. Но проблема в том, как "заставить" объекты пересечь необходимую область. Например, если использовать Drag & Drop ,то пользователь сам перемещал объект на указанную область и срабатывала проверка с помощью функции hitTestObject , а в данном случае получается необходимо использовать массив точек только?

Или прописывать объекту координаты области в которую хочу его поместить, а дальше запускать функцию расстановки объектов, чтобы они не пересекались в области.

ZergMaster 24.07.2018 13:55

Не очень понял. Так нужно, чтоб они пересекались, или не нужно? Все выглядит довольно очевидно: создаем рандомные координаты, проверяем их на hitTest, если пересекаются - пересоздаем. И так пока не профит.

art_maestro 24.07.2018 17:36

Объекты должны пересекаться с областью (с любой). Но между собой объекты пересекаться на одной области не должны.

Я понял. Нужно постоянно рандомно получать координаты пока они не будут пересекаться хоть с одной из областей.
Получается, чтобы объекты не налаживались друг на друга (в области) необходимо так же использовать hitTest?

undefined 26.07.2018 14:19

объекты можно заменить ограничивающими прямоугольниками?Например, чтоб оптимально упаковать подковообразные объекты, придется учитывать,что они имеют невыпуклую форму.

art_maestro 27.07.2018 19:43

Я сделал объекты одинаковой формы (деревья), вроде что-то вырисовывается. Но надо теперь разобраться как сделать, чтобы объекты не налаживались друг на друга

ZergMaster 30.07.2018 12:54

видимо, где-то лажа, вот они и налаживаются


Часовой пояс GMT +4, время: 22:33.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.