2014-10-09 5 views
-1

Имея проблему с физикой farseer, я уверен, что проблема связана именно с этой строкой кода из-за значения y. Поэтому, когда я пытаюсь переместить своего персонажа при падении, он движется влево и вправо, но его падение замедляется.Проблема гравитации с использованием физики Фарсера

body.LinearVelocity = new Vector2(1,0) 

Есть ли способ изменить значение x этого? Или есть способ предотвратить скольжение и установить колпачок на скорость применения force() или applylinearimpulse()?

ответ

1

Устанавливая линейную скорость до 1,0, вы указываете персонажу горизонтальную скорость 1 и вертикальную скорость 0. Таким образом, вы фактически не можете остановить ее от падения.

Следующий код будет делать то, что вы ожидаете, поскольку он сохраняет вертикальную скорость.

body.LinearVelocity = new Vector2(1, body.LinearVelocity.y);

В некоторых (большинстве) случаях лучше применять силу или импульс к персонажу, используя body.Apply... это применяет силу для одного кадра и Предсказатель будет автоматически вычислять правильную скорость. Обратите внимание, что добавление той же силы или импульса в каждый кадр сделает ускорение движения.

+0

Он не останавливает движение по оси y. Я знаю, что я должен угадать, что те разработчики физики farseer не так думают. Спасибо за помощь – KGSB

+0

Он останавливает движение, рассчитанное до сих пор. Но затем на последнем шаге применяется сила тяжести. Поэтому поэтому он замедляется, а не останавливается полностью :). –

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

  • Нет связанных вопросов^_^