![]() |
Пролетание тел друг через друга, как побочный эффект RevoluteJoint
Вложений: 1
Добрый день. Задача такая: есть снаряд, который на некоторой скорости врезается в стену. В момент врезания - снаряд должен привязаться к этой стене с помощью revoluteJoint-a и при этом остаться на месте столкновения. Задача - достаточно простая, но при реализации - возникает проблема. Если часто выстреливать этот снаряд в стену, то он начинает сквозь неё пролетать. При этом, если снаряд не привязывать джоинтом, то пролёта сквозь стену - не наблюдается.
По документации, при обьединении тел джоинтом эти тела перестают сталкиваться. И действительно, если я ставлю джоинту collideConnected = true, пролёта - нет. Но я ведь удаляю джоинт! Следовательно ожидаю, что и тела должны снова сталкиваться правильно. Никак не могу обойти этот глюк. Подскажите пожалуйста, почему такое поведение может возникать? Набросал тестовую сцену, чтобы можно было воспроизвести глюк. Исходник - во вложении. Для повтора бага нужно клатсать мышью где-то 3-5 раз в секунду. |
Может надо после столкновения делать не жоинт, а делать новую стену, где снаряд будет приклеен намертво.
|
Дело в том, что снаряд должен продолжать крутится вокруг точки. Тоесть как раз джоинт и нужен. Мне пришло в голову решение проблемы: пересоздавать снаряд заново после каждого выстрела. Так на него не будет действовать побочный эффект прошлых джоинтов. Но это, к сожалению, "костыль".
|
| Часовой пояс GMT +4, время: 15:30. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.