Udostępnij za pośrednictwem


Windows Phone 7, XNA и Farseer Physics. И исходник... и игра... и...

Грег Дункан

С сегодняшним проектом мы продвинемся далее в программировании Windows Phone 7 & XNA, на этот раз добавив некоторые прикольные вещицы вроде Physics, редакторы уровней и еще кое-что. Найденный с помощью Windows Phone Geek'sBounceBall – XNA Farseer Magic (с полным исходным кодом) пост расположен на сайте Code Project.

clip_image002

BounceBall – XNA Farseer Magic

Кто, что, где и почему?

Для кого эта статья? Эта статья, создана для того, чтобы помочь новым разработчикам приспособиться к созданию мобильных игр, а также тем, кто создает новые приложения, используя XNA. Чтобы получить максимальную пользу от нее рекомендуется иметь, по крайней мере, хорошее понимание C# и платформы .NET Framework и некоторое представление о Microsoft XNA Game studio. Если вы не сталкивались с механизмом Farseer Physics Engine, не пугайтесь, я начал изучать Farseer вместе с этой игрой.

Что [черт возьми] я читаю? Игры для Windows Phone имеют уникальный набор требований и проблем, которые надо обозначить. На протяжении всей статьи вы будете изучать, как структурировать приложение, таким образом, чтобы обеспечить согласованный и надежный интерфейс пользователя. А для разработчиков эта статья предоставит множество повторно используемых и необходимых компонентов, которые должна иметь каждая игра.

Почему появилась эта статья? У меня много идей для игр на Windows Phone и мне бы хотелось реализовать их все, но когда я начал работать с XNA и Farseer Physics Engine, я не смог найти оптимальный и эффективный путь для быстрого и легкого создания игр. Как будто не существовало ясной среды или фрагментов кода, собранных под одной крышей. Так что я начал собирать и создавать основные строительные блоки для каждой игры. И после сборки всего в едином проекте оказалось, что работать с XNA и Farseer Physics Engine очень просто. Таким образом, данная статья позволит вам создавать игры за несколько дней или даже часов.

Что потребуется? (Необходимые условия) Все инструменты, которые использовались, находятся в свободном доступе.

Microsoft Visual Studio 2010 Express for Windows Phone
GIMP, The GNU Image Manipulation Program
Farseer Physics Engine

...

Эта статья посвящена не только игре, но также является учебником. В большей степени, чем самой игре, она посвящена использованию Farseer Physics Engine в WP7… И, надо признать, физический механизм очень хорош…

После получения исходника осталось приложить небольшие усилия для установки, чтобы начать.

Первыйшаг : Загрузить Farseer Physics Engine.

Что мне больше всего понравилось, так это загрузка Farseer Physics Engine 3.2 WP7.

clip_image004

Загрузить и разархивировать.

Второй шаг: построение решения VS

Я не нашел SLN-файла в исходной загрузке BounceBall – XNA Farseer Magic, но эту проблему легко исправить. Откройте один из проектов и добавьте в решение остальные проекты.

clip_image006

Я начал с проекта FarseerXNAWP7 ("\BounceBall – XNA Farseer Magic\FarseerXNAWP7\FarseerXNAWP7\FarseerXNAWP7.csproj") и затем добавил к решению проекты FarseerXNAWP7Content, FarseerXNABase и RenderXNA.

Наконец я добавил Farseer Engine (первый шаг выше) и задал ссылки.

Третий шаг: Его нет – запускайте приложение!

Теперь, когда мы получили рабочий код, я предлагаю вернуться назад к статье и изучить ее детально. В ней есть много информации о Farseer, XNA и написании игр в Windows Phone 7 (наподобие экранов, уровней и т.п.)

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

Использование демонстрации для механизма FarseerPhysicsEngine

До сих пор, имея физические объекты, мы знали какие измерения необходимо провести, но отсутствовали вещи, относящиеся к интерфейсу пользователя, поскольку Farseer – моделирует физику, а не интерфейсные изображения. Следовательно, если мы продолжим и создадим тело в нашем мире, мы ничего не увидим на экране, даже если оно будет там. Чтобы физические объекты Farseer появились на экране необходимо нарисовать их с помощью XNA. Можно использовать методы Draw и DrawText из класса SpriteBatch для рендеринга текстур и текста на экране. Ниже приведен пример прорисовки прямоугольника (квадрата) размером 10x10 и заполнение его текстурой MyTexture.

Давайте создадим пример и заставим прямоугольник падать под действием гравитации на пол.

Запустите Visual Studio 2010 Express для Windows Phone, создайте новый проект и выберите из шаблонов XNA Game Studio 4.0 и Windows Phone Game (4.0) в качестве шаблона проекта. Назовите его FarseerXNADemo1. Это даст два проекта, первый для XNA а второй проект содержимого управления ресурсами (изображениями, звуками, шрифтами и т.п.).

- Сначала нам нужно сделать ссылку на dll Farseer Physics Engine для WP7 (ее можно найти https://farseerphysics.codeplex.com на странице Download). Теперь нам понадобятся некоторые текстуры (с их помощью мы ссылаемся на изображения) которые будут рендериться, но нам достаточно только простых цветов, так что я собираюсь добавить пустое png-изображение (blank.png) в содержимое проекта. После всех шагов обозреватель решений будет выглядеть следующим образом.

...

clip_image008

clip_image010

...

Проект строится отсюда в полном объеме, вплоть до редактора уровней (исходные коды для которого тоже доступны).

clip_image012

От начала до собственно игры… все здесь.

Несколько ссылок, которые могут оказаться интересными:

Comments

  • Anonymous
    June 16, 2011
    The comment has been removed