Я внедрил движок Farseer в свой проект 2D-платформера XNA.

Я создал тело, используя изображение участка местности, которое хорошо загружается и рисуется, я создал второе тело, которое является игроком, и оно рисует, но ничего не делает.

Как заставить объект тела игрока работать, применять гравитацию и сталкиваться с объектом ландшафта?

Я искал повсюду и не мог найти много руководств / руководств о том, как делать основные вещи с farseer.

0
Jamie 23 Мар 2011 в 01:44

1 ответ

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

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

Я бы порекомендовал просмотреть Руководство по Box2D, потому что Farseer по большей части копирует исходный API Box2D. Такие вещи, как управление памятью, очевидно, отличаются из-за того, как работает .Net framework. Некоторые эксперименты могут быть необходимы.

0
Michael Younkin 23 Мар 2011 в 02:00
Я начал заставлять это работать. на созданный мной объект «Тело игрока» действует гравитация. Я использую такие вещи, как ApplyForce() и ApplyTorque(), но они все равно падают по прямой. Просто нужно придумать, как заставить тело сталкиваться с рельефом и работать как надо.
 – 
Jamie
23 Мар 2011 в 15:28
Не могу решить задачу "падение по прямой". Вы поняли это?
 – 
Simon Tower
13 Июн 2011 в 08:41