Форум 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=192897)

Dip52 20.01.2013 22:07

Как изменить настройки столкновения hitTestObject?
 
Здравствуйте. :)

Есть объект MovieClip в нём два шара, которые отдалены друг от друга. Есть ещё один объект MovieClip, он гораздо меньше, чем предыдущий объект MovieClip и с легкостью влезет в область между двумя шарами.
Стоит слушатель событий Event (enter_frame), где условие "hitTestObject". Оно проверяет столкновение между двумя этими объектами.
Как сделать так, чтобы когда объект MovieClip, который меньше, находился между двумя шарами объекта MovieClip не считался "касанием".

0 = шар объекта MovieClip.
1 = объект, который меньше, чем предыдущий объект MovieClip.

0 1 0 — Касания нету.

1 - 0 — Касание есть.

samana 20.01.2013 23:51

Если я правильно понимаю, то вам надо проверять столкновения маленького мувиклипа и обоих шаров в отдельности, а не маленького мувиклипа и мувиклипа с шарами.

caseyryan 21.01.2013 09:54

О каких настройках речь? hitTestObject - Это вообще один из самых примитивных алгоритмов проверки. Он проверяет по баундинг боксу. Если нужна точная проверка столкновений, прийдется разбираться с SAT.

expl 21.01.2013 13:19

Как-бы столкновение шаров определяется по формуле:
Код AS3:

public static function isRoundHitted(x0:Number, y0:Number, r0:Number, x1:Number, y1:Number, r1:Number):Boolean {
    var dx:Number = x1 - x0;
    var dy:Number = y1 - y0;
    return dx * dx + dy * dy < (r0 + r1) * (r0 + r1);
}

Теорема Пифагора, 6-й класс, если не ошибаюсь :)

Да, и 3 шара ни кто не пытается рассматривать, обычно столкновения попарно обрабатывают.


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

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