box2d: b2_dynamicBody не движется с платформой b2_kinematicBody

У меня есть платформа (коробка), которая имеет тип b2_kinematicBody и движется с линейной скоростью.
Чем у меня есть шар, который является b2_dynamicBody.

Когда мяч приземляется на платформу, он остается на той же позиции и не движется вместе с платформой.
введите описание изображения здесь

Проверьте это маленькое видео, которое я сделал, которое показывает проблему —— >>>
https://vimeo.com/109238152

Уже увеличено трение на обоих объектах, но безрезультатно.
В настоящее время я могу думать только об одном решении, которое состоит в том, чтобы соединить эти два всегда, когда они вступают в контакт.
Это правильное решение?

Спасибо заранее
Kris

PS: протестировано с последней версией box2d на c ++

0

Решение

Если вы говорите о том, почему он всегда скатывается с платформы, это может быть связано с тем, что у него нет трения качения (не путать с поверхностным трением), чтобы оно могло остановиться. Трение при качении — вот почему шина, которая накачана очень сильно, будет катиться дольше, чем шина, которая немного плоская — энергия расходуется на сжатие резины при ее повороте. Светильники в Box2D идеально жесткие, что невозможно в реальном мире. Таким образом, этот круг похож на стальное колесо поезда, катящееся по железной дороге, за исключением того, что трение меньше.

Попробуйте установить значение углового демпфирования около 0,5 для тела круга. Это может быть слишком много, но это должно дать вам идею. Вы можете обнаружить, что высокое угловое демпфирование слишком сильно замедляет его в воздухе, что выглядит неестественно. Если это так, вы можете динамически регулировать угловое демпфирование в зависимости от того, касается оно или нет.

0

Другие решения


По вопросам рекламы ammmcru@yandex.ru
Adblock
detector