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

Фенёк 02.12.2011 13:46

Определение коллизий и просчет результатов столкновения
 
Всем привет, у меня такой вопрос: как правильнее было бы просчитать столкновение двух объектов? в Моем случае требуется определить столкновение автомобиля пока что просто со зданием. Я уже прочел несколько статей по определению коллизий но ни одно из них, к сожалению, не учитывает такое вероятности, что объект может поворачиваться.

Из того что сейчас мне пришло на ум (и очень не спеша реализуется) это просчет пересечения по точкам, через уравнение прямой. То есть я просчитываю каждую крайнюю точку автомобиля и проверяю не попала ли она внутрь здания. Потом будет необходимо провести обратную проверку для того, чтобы узнать, не попала какая-нибудь из точек здания внутрь авто.

Так вот, первый вытекающий отсюда вопрос: насколько вообще целесообразно такое решение задачи?

И второй вопрос: что делать после столкновения? Понятное дело что угол падения, равен углу отражения, но ведь этим все не ограничивается, автомобиль после удара надо как-то развернуть, как это сделать?

Alex Lexcuk 02.12.2011 14:15

Box2d поможет.

Если уж сильно хочется позаморачиваться и создать собственный аналог box2d библиотеки, которая разрабатывается годами, я уже пробовал ваш вариант по точка и отрезкам.
http://www.murmadillo.tut.su/html/co...n-attempt.html

После определения столкновения проще всего отбросить машинку в обратную сторону движения, пропорционально скорости её движения.

Фенёк 02.12.2011 14:30

Box2D Вот совсем не хочу. Да и не честным это все как-то кажется, пользоваться чужим кодом-то. Да и потом всегда было интересно вникнуть в сам этот процесс и понять как вообще там что происходит.

Столько автосимуляторов было разработано, неужели никто за чем это время не написал ни одной статьи касательно того как это работает?

И получается тогда единственным выходом будет изучение содержимого библиотеки? Есть к ней какая-нибудь документация? Или хотя бы комментарии в внутреннему коду?

zuxul 02.12.2011 14:39

Все открыто, и понаписано куча статей, что и как там работает.
Имеется ввиду box2d.

Фенёк 02.12.2011 15:07

Мне необходимо разобрать именно все «кишки» всех коллизионных функций, а не описание как ими пользоваться. К сожалению гугл кишит совсем не той информацией которая мне нужна.

Может быть существуют все таки какие-нибудь более менее доступные статьи по этому поводу?

Если нет, то может быть давайте попробуем худо бедно в каком-то виде разобрать этот вопрос в режиме диалога, потому что эта проблема в игростроении остается актуальной весьма и весьма

-De- 02.12.2011 15:28

Есть куча статей, как работает физические движки. Ну и про физику тоже.

Фенёк 02.12.2011 15:37

Копаю изо всех сил, честное слово. Нашел такой вот туториал. Почитал. Но нет ничего о том что должно происходить при столкновении «повернутых» объектов и как их крутить после столкновения. Кроме того возникает вопрос как найти точку в которую нужно «вытолкнуть» объект при таком столкновении.

Если у вас есть конкретные статьи или вы могли бы сами что-то рассказать по теме, я был бы очень признателен.

Да, я умею пользоваться поисковиком, но, к сожалению по запросу «алгоритм определения столкновений» обычно встречаются точно такие же не отвеченные вопросы, расплывчатые ответы и советы по использованию движков.

-De- 02.12.2011 15:54

Ищете столкновения - находите столкновения. Нужна физика отскока - ищите физику отскока и про физические движки, как работают физические движки скачать бесплатно )
Выталкиванием занимается солвер (вроде не решаемая задача точно и в общем виде). Отскок по физике, законам сохранения импульса, энергии и момента импульса (даже когда энергия теряется на трение и разогрев), которые все лезут из 3-х з-нов Ньютона.
http://www.gamedev.ru/code/terms/PhysicsEngine
http://www.gamedev.ru/code/articles/?id=4706

Фенёк 02.12.2011 16:04

Большое спасибо. Пойду читать.


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

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