2013-04-07 2 views
3

У меня есть мир в Box2D, где я использую 2 краевое тело, чтобы представлять стену. (У меня есть 2, потому что может быть различным углом между 2 объектами)Box2D соседних края столкновение

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

Также, если мой объект круга попал в положение между двумя ребрами (с или без угла), он отскакивает до неопределенного направления.

Как я могу исправить или предотвратить такое поведение?

Collision detected

enter image description here

Углы округлены

ответ

2

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

Для второго случая. Единственное, что приходит мне на ум, - обнаружить столкновение с несколькими ребрами (с некоторым допуском, наверняка, не точное значение), а затем рассчитать биссектр интересующих краев - и угол, который обтекает объект окружности по краям, вычисляет новые угол.

+0

Я попробовал ваше первое предложение для предварительной обработки, и он отлично работает! –

+0

Сегодня мы столкнулись с такой же проблемой - не могли бы вы рассказать о том, как вы это сделали? Я полагаю, что вы используете собственный подход? (раздражающе, что мой босс настаивает на использовании Unity :() – batterj2

Смежные вопросы