Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Помогите разобратса с hitTestObject (http://www.flasher.ru/forum/showthread.php?t=135788)

nbvehfuanet 01.02.2010 22:40

Помогите разобратса с hitTestObject
 
Вложений: 1
Проблема вот в чём,существует линия и необходдимо при пересечение шарика с линией шобы в оутпут вывелось "пук",вроде бы всё просто....но беда шо он ищет пересечение не шарика с линией,а шарика с областью линии
Вот код самое првоерки
Код AS3:

if (player.hitTestObject(getChildByName("qq1"))) {
                        trace('pyk');}
                        else trace('  ');

подскажите пожалуста шо нужно делать в этом случае,а лучше показать:)
Зарание спасибо

Crenth 02.02.2010 01:55

Вложений: 1
да, я вот тоже не могу врубиться, почему, когда таскаем красную окружность мышкой,
то hitTestObject() дает true только при "визуальном/видимом" контакте красного круга и желтого круга, но

дает true УЖЕ при входе красного круга в зону, ограниченную height/width спрайта, где нарисована линия, а не при видимом касании круга и линии (как мне того хочется)

Прошу пояснить, в чем тут хитрость ?

Doctor76 02.02.2010 13:05

Пересечение линии с шариком нужно искать как пересечение двух линий
Линии из центра шарика проведенная к другой линии

Помоему в разделе ActionScript 2 был готовый пример.
(почти готовый)
Поищите по словам "пересечение линий"

Crenth 02.02.2010 13:07

речь не о том, как его искать,
а о различном поведении hitTestObject в случае линия+круг и круг+круг

Psycho Tiger 02.02.2010 13:31

Очертите вашу линию прямоугольником наименьшей площади, при котором вся линия будет входить в этот прямоугольник. Тоже самое сделаете с кругом. Вот эти прямоугольники и будут проверятся на столкновение.

Если круг - круг - если расстояние между их центрами меньше суммы радиусов - столкновение.

Если круг - линия - опустите нормаль с центра круга на линию, и если длина это линии меньше радиуса... ну вы поняли.

Doctor76 02.02.2010 13:58

Цитата:

речь не о том, как его искать,
а о различном поведении hitTestObject в случае линия+круг и круг+круг
Речь как раз о том, что пересечение линия - круг корректно не ищется методом hitTestobject

Crenth 02.02.2010 14:09

Цитата:

Сообщение от Doctor76 (Сообщение 883587)
Речь как раз о том, что пересечение линия - круг корректно не ищется методом hitTestobject

Да, Вы правы!
А какой тут выход (ну чтобы средствами АС3 обойтись без применения высшей математики) ?

alikSmehoff 02.02.2010 14:11

Чтобы такое пересечение правильно работало, придется самому метод для работы писать. Попробуйте с помощью BitmapData.hitTest(), можно сделать чтобы корректно попиксельно проверка выполнялась.

Добавлено через 38 секунд
Примеры в интернете можно найти.

Crenth 02.02.2010 14:13

мдаааа....

а правда говорят что АС3 писали индусы за еду ?

Doctor76 02.02.2010 14:14

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



Индусы за еду:taunt:


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

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