![]() |
|
||||||||||
|
|||||
|
Регистрация: Mar 2011
Сообщений: 59
|
здрасте, это снова со своими тупыми вопросами...
Как найти точку соприкосновения двох мувиклипов. Если хиттест возвращает логическое значение, а мне нужны координаты... Наперед спасибо! |
|
|||||
|
[+6 09.06.11]
Регистрация: May 2007
Сообщений: 721
|
а мувиклипы какой формы?
|
|
|||||
|
Регистрация: Mar 2011
Сообщений: 59
|
в том то и дело, что разные и непредсказуемые.
Если бы кружки или квадрати, то было бы всё просто: есть центр, от него и считаеш(тогда и хиттест не надо) а нет ли какого-нибудь оператора, чтоб сразу возвращал координаты? |
|
|||||
|
Регистрация: May 2010
Адрес: пространство в положении
Сообщений: 219
|
|
|
|||||
|
блогер
Регистрация: Feb 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 2,113
Записей в блоге: 1
|
Есть вариант один.
Алгоритм такой: 1. Определяете столкновение с помощью hitTest(). Если столкновение есть, то переходите на следующий шаг. 2. Создаете две битмапы для обоих объектов, отрисовываете эти объекты с помощью BitmapData.draw() 3. Меняете битмапдаты с помощью ColorMatrixFilter так, чтобы их изображения были, например, красного цвета. По-сути, просто заливкой, красная форма и прозрачный фон. 4. Создаете новую битмапу, куда врисовываете первые две по координатам объектов, при этом используя blendMode (какой точно — не помню). 5. Если объекты пересекаются не только габаритно, но и геометрически, то после наложения их битмап друг на друга с использованием blendMode в результирующей битмапе будут черные пиксели. 6. С помощью BitmapData.getColorBoundsRect() и поиском черных пикселей вы получите объект Rectangle со значениями области пересечения. С точностью до одного пикселя (я имею в виду, что объект на один пиксель наехал на другой) скорее всего получить не получится — обновление по кадрам в секунду — это дискретная операция. Потому, что, если вы двигаете объект на 10 пикселей за один фрэйм, то он пересечется с другим на один пиксель с вероятностью 1/10. Возможно позже покажу пример.
__________________
hauts.ru |
|
|||||
|
[+6 09.06.11]
Регистрация: May 2007
Сообщений: 721
|
тут где то ссылка была на урок со столкновениями. там по моему 2 прямоугольника можно было двигать, и он кружками отмечал все точки пересечения (от 1 до 8)
|
|
|||||
|
блогер
Регистрация: Feb 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 2,113
Записей в блоге: 1
|
Вот, смотрите пример. BitmapIntersection_test.zip
С мувиклипами, у которых есть масштаб и вращение разобраться не успел. Там сложности с матрицами получаются, сходу не сделаю.
__________________
hauts.ru |
![]() |
![]() |
Часовой пояс GMT +4, время: 00:55. |
|
|
« Предыдущая тема | Следующая тема » |
|
|