Показать сообщение отдельно
Старый 21.02.2011, 18:33
1g0rrr вне форума Посмотреть профиль Отправить личное сообщение для 1g0rrr Найти все сообщения от 1g0rrr
  № 1  
Ответить с цитированием
1g0rrr

Регистрация: Jul 2009
Адрес: Донецк
Сообщений: 25
По умолчанию Пролетание тел друг через друга, как побочный эффект RevoluteJoint

Добрый день. Задача такая: есть снаряд, который на некоторой скорости врезается в стену. В момент врезания - снаряд должен привязаться к этой стене с помощью revoluteJoint-a и при этом остаться на месте столкновения. Задача - достаточно простая, но при реализации - возникает проблема. Если часто выстреливать этот снаряд в стену, то он начинает сквозь неё пролетать. При этом, если снаряд не привязывать джоинтом, то пролёта сквозь стену - не наблюдается.

По документации, при обьединении тел джоинтом эти тела перестают сталкиваться. И действительно, если я ставлю джоинту collideConnected = true, пролёта - нет.

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

Набросал тестовую сцену, чтобы можно было воспроизвести глюк. Исходник - во вложении. Для повтора бага нужно клатсать мышью где-то 3-5 раз в секунду.
Вложения
Тип файла: rar TestJoint.rar (356.3 Кб, 1113 просмотров)