Просмотр полной версии : Проверка пересечения экранных объектов
art_maestro
19.10.2013, 18:26
Здравствуйте.
Подскажите как решить такую задачу. Есть два мувика мув1 и мув2. разного размера мув1>мув2.
Вопрос в следующем: передвигаем мув2 на мув1, как проверить, вошел ли мув2 в область мув1.
Я делал с координатами, но я думаю есть более простой способ, может какая-то функция, пожалуйста подскажите.
Спасибо.
hitTestObject (http://help.adobe.com/ru_RU/FlashPlatform/reference/actionscript/3/flash/display/DisplayObject.html?filter_flex=4.1&filter_flashplayer=10.2&filter_air=2.6#hitTestObject())
KumoKairo
19.10.2013, 19:58
На самом деле иногда и с координатами приходится делать, например если известно заранее, что мувики круглые. Тогда хит тест методы будут "промахиваться", поскольку они используют прямоугольные рамки объектов.
Есть еще pixel-perfect способ, когда проверяется столкновение непрозрачных пикселей объекта с :
1. Точкой.
2. Другим объектом с прозрачными пикселями.
Первый способ в AS3 можно реализовать с помощью hitTestPoint (http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/DisplayObject.html#hitTestPoint%28%29) c выставленным флагом shapeFlag в true. Это относительно легковесный и нетребовательный к производительности метод.
Второй случай, когда требуется определить пересечение двух сложных объектов, нативно не реализован (насколько помню), но в инете полно библиотек для этого. (эта например) (http://www.freeactionscript.com/2011/08/as3-pixel-perfect-collision-detection/)
Но за эту точность придется расплачиваться процессорным временем, поскольку это более трудоемкая задача.
Поэтому чаще всего разумнее использовать .hitTestObject или .hitTestPoint
Еще где-то были методы, проверяеющие столкновение объекта с любым другим объектом (мы не знаем заранее с каким столкнемся), но я настолько "отстал от жизни" что не помню, есть ли этот метод в нативном варианте или нет.
art_maestro
19.10.2013, 21:38
Спасибо ребята! Буду пробовать.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.