Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Событие для соприкосновения (http://www.flasher.ru/forum/showthread.php?t=182475)

GoodWin74 24.07.2012 11:25

Событие для соприкосновения
 
Здравствуйте! Возник вопрос на тему событий во Flash.
Почему за столько лет существования, Adobe не внесла, так нужное всем событие соприкосновения.
Мне кажется многим бы облегчили жизнь.
Что-то вроде:
Код AS3:

addEventListener(Event.HIT_TEST,function(e:MovieClip){
removeChild(e);
});

И хотелось бы узнать, какие есть методы просчета соприкосновения без указания MovieClip, а наоборот для того, чтобы узнать кто с ним соприкоснулся дабы избежать перебора всех клипов на сцене.

gagaga 24.07.2012 11:55

потому что есть множество бесплатных физических движков для ваших целей

kunlan 24.07.2012 12:07

Поддерживаю gagaga. Умные(или хитрые) дяди из Адоба, наверное давно просекли, что другие не менее умные дяди уже написали кучу движков(тот же Box2D) и нет смысла изобретать велосипед. Даже не велосипед, а детали от него и надеяться, что пользователь продукции сумеет собрать нечто толковое, а не газонокосилку =)

caseyryan 24.07.2012 12:52

Наверняка это произошло не потому, что существует куча физических движков (платных или бесплатных роли не играет), а потому, что экшнскрипт - это язык программирования, просто инструмент, для создания того, что нужно программисту. Да, на нем можно писать приложения, в которых расчитываются столкновения - но это не сама цель языка. Расчет столкновений каждому нужен свой, и процесс этот довольно ресурсоемкий, зачем тратить на это ресурсы, если, например, в проекте это не требуется? И вообще, кто-то встречал язык, в котором был бы встроен расчет столкновений изначально? П.с. hitTest или hitTestObject из АС не в счет.

Цитата:

какие есть методы просчета соприкосновения без указания MovieClip
Самый популярный способ расчета столкновений - SAT (Separating Axis Theorem) или Теорема о Разделяющей Оси.

GoodWin74 24.07.2012 12:58

Большое спасибо всем за высказывание. Будем думать дальше.

Добавлено через 11 часов 38 минут
Извиняюсь, что снова поднимаю тему, но возник вопрос. Есть персонаж состоящий из головы, ног рук и тела(отдельно). Есть анимации всех действий.
Как сделать, чтобы при столкновении с препятствиями, персонаж становился бы Rigidbody со связками с частями тела, либо если препятствие режущие или колющие, то связка не было с частями тела, которые соприкоснулись с препятствием?
В том же box2d не особо разобрался как вообще крепить клип к объекту.
Буду очень благодарен, за объяснение или за ссылку на ресурс или тему.

Dip52 23.08.2012 01:07

Цитата:

Сообщение от GoodWin74 (Сообщение 1089708)
Большое спасибо всем за высказывание. Будем думать дальше.

Добавлено через 11 часов 38 минут
Извиняюсь, что снова поднимаю тему, но возник вопрос. Есть персонаж состоящий из головы, ног рук и тела(отдельно). Есть анимации всех действий.
Как сделать, чтобы при столкновении с препятствиями, персонаж становился бы Rigidbody со связками с частями тела, либо если препятствие режущие или колющие, то связка не было с частями тела, которые соприкоснулись с препятствием?
В том же box2d не особо разобрался как вообще крепить клип к объекту.
Буду очень благодарен, за объяснение или за ссылку на ресурс или тему.

Я делаю таким образом: argument — твой персонаж, tnemugra — противник твоего персонажа,
Код AS1/AS2:

if(argument.x > themugra.x && argument.x < themugra.x + themugra.width)
{
    trace("Касание по горизонтально координате произведено");
}

То есть, если я, будучи машиной (персонаж), наеду на парковку (противник), то это условие сработает. Тоже самое нужно сделать и с координатой y.


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

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