Просмотр полной версии : Как, кроме hitTest-а, можно обнаруживать перекрытия мувиклипов?
orcpochta
12.06.2008, 19:46
существует ли метод проверки перекрытия мувиклипов не по ограничивающим прямоугольникам, а по фактическому содержимому?
ну т.е. hitTest проверяет только ограничивающие прямоугольники (если не рассматривать вариант поточечного хит-тестирования), поэтому, если там две окружности в мувиклипах, то может возникнуть случай, что они друг на друга не накладываются, а хитТест, говорит об обратном, т.к. накладываются ограничивающие прямоугольники.
Понятно, что про окружности - это только пример и можно мерить их радиусы и расстояние между центрами, но как быть, если это, например, звездочки или другие сложные фигуры? тут уже математическими методами так просто не замерить...
2Модератор: Не знаю как еще правильно сформулировать вопрос, чтобы тему не закрыли.
Fernando Costa
12.06.2008, 19:56
можно BitmapData-ой, только будет ресурсоемко, можно на края звездочки повесить мувиклипы в один пиксель и хитТест поверять с ними
Psycho Tiger
12.06.2008, 20:24
Сложными - но они того стоят (вспомни N)
Перевод от Нокса Нокитса:
http://noregret.org/tutor/n/collision/
Роман Вадимович
12.06.2008, 20:33
hitTest кстати позволяет определить пересечение объекта и точки.
Может существует возможность принять второй объект за точку?
Это хорошо подходит в случае мишени и пули.
Psycho Tiger
12.06.2008, 20:45
Ага, а ещё можно делать так:
Идем от вершины мувиклипа до его конца по каждому _х.
Нашли пересечение - добавляем точку в массив.
Аналогично снизу вверх, слева-направо,справа-налево.
После проверяем все точки, что в масиве на пересечение с другим мувиклипом.
Можно обойтись и без масива, это для наглядности сдесь вставил)
orcpochta
13.06.2008, 00:38
hitTest кстати позволяет определить пересечение объекта и точки.
Может существует возможность принять второй объект за точку?
Это хорошо подходит в случае мишени и пули.
я это упомянул в вопросе..))
hitTest проверяет только ограничивающие прямоугольники (если не рассматривать вариант поточечного хит-тестирования)
можно на края звездочки повесить мувиклипы в один пиксель и хитТест поверять с ними
звездочка - это всего-лишь пример, а как быть, если фигуры трансформируются во времени?
Ага, а ещё можно делать так:
Идем от вершины мувиклипа до его конца по каждому _х.
Нашли пересечение - добавляем точку в массив.
Аналогично снизу вверх, слева-направо,справа-налево.
После проверяем все точки, что в масиве на пересечение с другим мувиклипом.
Можно обойтись и без масива, это для наглядности сдесь вставил)
это сколько же точек получится?..)) комп умрет на проверке всех точек..))
Psycho Tiger
13.06.2008, 14:15
Когда то кто то делал на ас1 подобное, 1 фигурка таскается, другая не подвижная. Не тормозило. Не обязательно ведь сдвигаться на 1 пискель, можно сразу на 5 :)
orcpochta
13.06.2008, 22:55
Когда то кто то делал на ас1 подобное, 1 фигурка таскается, другая не подвижная. Не тормозило. Не обязательно ведь сдвигаться на 1 пискель, можно сразу на 5 :)
можно оптимизировать: включать проверку поточечно только в том случае, если произошло перекрытие ограничавающих прямоугольников.
еще можно придумать алгоритм очередности этих точек на проверку каким-нубудь делением пополам..))
Psycho Tiger
15.06.2008, 10:55
Я и говорю - простор для полета воображения :)
В итоге можно получить достаточно быстродейственный алгоритм перекрытия 2 совершенно произвольных фигур.
Кстати, в принципе любую фигуру можно описать кривыми безье, Иван Дембицкий как раз пишет класс для этого.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.