Заставить объект Box2d следовать заданному пути - PullRequest
4 голосов
/ 25 декабря 2011

Я создаю игру, в которой определенный объект (смоделированный как box2d тело) должен следовать по фиксированному пути. Есть ли способ, с помощью которого я могу указать координаты пути и заставить объект двигаться над ним для каждого dt?

Спасибо

Ответы [ 2 ]

6 голосов
/ 26 декабря 2011

Другой вариант:

  • Прикрепите мышиный сустав к телу
  • Используйте метод setTarget мышиного сустава для перемещения тела
1 голос
/ 26 декабря 2011

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

Я предлагаю следующий алгоритм:

1-й - Вычислить позицию на дорожке, в которой должно быть тело на следующей точке.

2-й - Сделать вектор, идущий от позиции, в которой находится тело, к следующей позиции.

3-й - нормализуйте его.

4-й - вычислите, сколько вам нужно скорости, чтобы тело было в этом положении в следующем цикле, и умножьте эту скорость на вектор.

5-й - Примените этот вектор к линейной скорости тела.

Примечание: убедитесь, что кинематическое тело имеет нулевое сопротивление, чтобы вычисление 4-го шага было проще.

Я никогда не делал что-то подобноеЯ думаю, что это можно сделать таким образом.Надеюсь, это поможет:)

...