Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 20.01.2013, 22:07
Dip52 вне форума Посмотреть профиль Отправить личное сообщение для Dip52 Найти все сообщения от Dip52
  № 1  
Ответить с цитированием
Dip52

Регистрация: Aug 2012
Сообщений: 297
По умолчанию Как изменить настройки столкновения hitTestObject?

Здравствуйте.

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

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

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

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

Старый 20.01.2013, 23:51
samana вне форума Посмотреть профиль Отправить личное сообщение для samana Найти все сообщения от samana
  № 2  
Ответить с цитированием
samana
 
Аватар для samana

блогер
Регистрация: Mar 2008
Адрес: Днепропетровск
Сообщений: 1,783
Записей в блоге: 3
Если я правильно понимаю, то вам надо проверять столкновения маленького мувиклипа и обоих шаров в отдельности, а не маленького мувиклипа и мувиклипа с шарами.

Старый 21.01.2013, 09:54
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 3  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
О каких настройках речь? hitTestObject - Это вообще один из самых примитивных алгоритмов проверки. Он проверяет по баундинг боксу. Если нужна точная проверка столкновений, прийдется разбираться с SAT.

Старый 21.01.2013, 13:19
expl вне форума Посмотреть профиль Отправить личное сообщение для expl Найти все сообщения от expl
  № 4  
Ответить с цитированием
expl

блогер
Регистрация: Feb 2006
Сообщений: 1,474
Записей в блоге: 3
Как-бы столкновение шаров определяется по формуле:
Код 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, время: 20:31.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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