Как двигать bodyB по bodyA, не затрагивая bodyA' s движение в Box2D

Я пытаюсь достигнуть горящего эффекта спички на столе. Так его вершина вниз рассматривают с невесомостью. Везде, куда спичка идет, она была свойственна, огонь должен следовать линейно. Таким образом, я полагаю, что призматические суставы - то, в чем я нуждаюсь.

Моя спичка - прямоугольник, и мой огонь - круг датчика.

Я прошел это обучающая программа на призматическом суставе. В одном месте это говорит "Урегулирование тел тем же самым корпусам 'Зажимов' значений перевода вместе". Но когда я попробовал, это, bodyB не скользит.

  1. prismaticJoint->setLimit(transVal,transVal);
  2. Although this one works:
    prismaticJoint->setLimit(transVal,transVal+0.1);

(где transVal хорошо в определенных рамках.)

In method 1, when I print prismaticJoint->getJointTranslation, it always shows 0.000 (or -0.000).

В методе 2, bodyB действительно скользит, и значения перевода правильны, Но тогда мой bodyA также начинает перемещаться в противоположное направление к localAxisA , как будто bodyA пододвигается обратно из-за понижения.

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

Спасибо.

1
nl ja de
Да, ' зажатый together' средства они don' t понижение, потому что они действуют, как будто они засунуты/зафиксированы/сварены вместе. Что было бы, если вы изменяете ценность transVal постепенно и делаете setLimit каждый такт? Можно сделать приспособление датчика пламени очень легким (низкая плотность) так, чтобы ее движение не затрагивало матч.
добавлено автор iforce2d, источник
Самый простой подход должен был бы добавить приспособление, у которого действительно есть масса (например, многоугольник или круг) к телу, чтобы дать ему некоторую массу. Можно установить части маски столкновения этого дополнительного приспособления так это doesn' t играют роль в любых столкновениях. Таким образом, у тела была бы некоторая масса, но только край будет использоваться, чтобы столкнуться с другими вещами.
добавлено автор iforce2d, источник
Спасибо, который действительно работает, но что, если моя спичка продвигается, формируется вместо прямоугольника? Край формирует don' у t есть много inhernt массы, я предполагаю, и из-за этого то же самое поведение показывают. У меня действительно есть такой сценарий также.
добавлено автор Nikhil Verma, источник
Спасибо за наконечник и ваши обучающие программы потрясающий btw.:)
добавлено автор Nikhil Verma, источник