Что нам понадобится?

Скачать Farseer Physics Engine.
Visual Studio Express Edition и Windows Phone Developer Tools — можно скачть бесплатно с сайта Microsoft.
Подробнее о Windows Phone Developer Tools можно прочитать в цикле статей: “Создание приложения для Windows Phone 7 от начала до конца”.
Скачать Visual Studio Express Edition и Windows Phone Developer Tools.
Приступим
С чего начинается знакомство с любой системой? Конечно с написания простенького Hello World.
1) Для начала создадим новый проект “Windows Phone Game” и назовём его HelloPhysicWorld.
2) Добавим проект “Farseer Physics XNA WP7”.


3) И не забудьте добавить Reference.

Теперь можно перейти непосредственно к написанию нашей первой игры.
Создадим мир
Все взаимодействия в Farseer Physics Engine происходят в так называемом мире (класс World).
Добавляем в класс Game1:
using FarseerPhysics.Dynamics;
Cоздаём поле world:
private World world;
И добавим в конструктор его инициализацию:
world = new World(new Vector2(0, 20));
Теперь нам необходимо создать объекты, которые будут взаимодействовать в пространстве. В FPE эти объекты называются телами и все они наследуются от класса Body. Для создания тел используется фабрика BodyFactory.
Тела не знают как они будут отображаться на экране, об этом должен позаботиться разработчик. В нашем случае мы используем текстуры из XNA: Texture2D.
Для использования BodyFactory, необходимо подключить FarseerPhysics.Factories:
using FarseerPhysics.Factories;
Добавим поля:
private Texture2D ballSprite;
private Body ballBody;
private Body borderBody;
private const float MeterInPixels = 64f; // 1 метр соответствует 64 пикселям
Добавим текстуру мяча размером 55х55 пикселей.

Следующий код создаст тела и загрузит текстуру, добавьте его в метод LoadContent:
ballSprite = Content.Load("ball");
Vector2 ballPosition = (new Vector2(100, 100) / MeterInPixels);
ballBody = BodyFactory.CreateCircle(world, 55f / (2f * MeterInPixels), 1f, ballPosition);
ballBody.BodyType = BodyType.Dynamic;
ballBody.Restitution = 0.8f;
ballBody.Friction = 0.5f;
float width = (800 / MeterInPixels);
float height = (480 / MeterInPixels);
Vertices borders = new Vertices(4);
borders.Add(new Vector2(0, height));
borders.Add(new Vector2(width, height));
borders.Add(new Vector2(width, 0));
borders.Add(new Vector2(0, 0));
borderBody = BodyFactory.CreateLoopShape(world, borders);
borderBody.CollisionCategories = Category.All;
borderBody.CollidesWith = Category.All;
Отображаем мир
Добавьте в метод Update перед вызовом base.Update(gameTime):
world.Step((float)gameTime.ElapsedGameTime.TotalMilliseconds * 0.001f);
Добавьте в метод Draw, перед вызовом base.Draw(gameTime):
Vector2 ballPosition = ballBody.Position * MeterInPixels;
float ballRotation = ballBody.Rotation;
Vector2 ballOrigin = new Vector2(ballSprite.Width / 2f, ballSprite.Height / 2f);
spriteBatch.Begin();
spriteBatch.Draw(ballSprite, ballPosition, null, Color.White, ballRotation, ballOrigin, 1f, SpriteEffects.None, 0f);
spriteBatch.End();
Вот и всё, Hello World готов.

Заключение
Вы можете скачать исходники проекта: ссылка.
Спасибо за внимание.
П.С. если статья понравится, то будет продолжение. Не зря в заголовке стоит “Часть 1”.