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

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

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

Регистрация: Apr 2008
Сообщений: 211
По умолчанию hitTestObject и точка соприкосновения

скажу сразу, за многие годы знакомства с as3, мне ни разу не надо было высчитывать столкновение объектов, посему дайте пару советов.
у меня есть класс-спрайт круглого объекта, и он сталкивается с другими объектами. Глянул в сторону hitTestObject, и все бы здорово, но хотелось бы получить точку соприкосновения. Есть ли такая функция в as3, или свою писать? и правильно ли юзать hitTestObject? Просто это первое, что нагуглил

спасибо

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

Регистрация: Apr 2009
Сообщений: 409
testObject работает только на пересечении прямоугольных объектов, то есть пересекает всегда в нескольких точках. если это устраивает, то берете габариты двух объектов, и вычисляете прямоугольник их пересения, его центр можно условно назвать точкой соприкосновения.
Код AS3:
var hitArea:Rectangle=display1.bounds.intersections(display2.bounds);
var hitTestObject:Boolean=!hitArea.isEmpty
var hitPoint:Point=new Point(hitArea.x+hitArea.width/2, hitArea.y+hitArea.height/2)
для объектов произвольных форм - поверхность надо разделять на треугольники.
окружности пересеклись - если длина прямой между центрами меньше суммы радиусов.


Последний раз редактировалось faraday; 21.04.2017 в 22:52.
Старый 21.04.2017, 22:57
ther вне форума Посмотреть профиль Отправить личное сообщение для ther Найти все сообщения от ther
  № 3  
Ответить с цитированием
ther

Регистрация: Apr 2008
Сообщений: 211
спасибо

Создать новую тему Ответ Часовой пояс GMT +4, время: 13:52.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

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

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


 


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


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