Создаем Content для MonoGame в Visual Studio 2012

Первая проблема с которой сталкивается разработчик использующий MonoGame для игр под Windows 8(Windows Store apps) — это отсутствие специального типа проекта под контент в VS2012. Который преобразует ваши ресурсы, в понятный для XNA/MonoGame формат XNB.

Банальное решение использовать для этого VS2010 приведено почти во всех «Getting Started». Но держать открытыми две разные студии, и два абсолютно не связанных Solution -это потеря времени и целостности проекта.

С появлением Windows Phone SDK 8.0 в VS2012 можно делать игры на XNA под Windows Phone. И Microsoft добавили нужный тип проекта под контент им и воспользуемся.

Поэтому нам необходим установленный WP SDK 8.0

Подготавливаем Solution

1. Добавляем в текущий Solution проект типа Empty Content Project. Например Content.

Empty Content Project

2. Добавляем проект типа Windows Phone Game Library (4.0). Например ContentLibrary.

Windows Phone Game Library (4.0)

3. Удаляем файл Class1.cs из ContentLibrary. Он нам не нужен.

4. Правой кнопкой по проекту ContentLibrary, выбираем пункт Add Content Reference.

Add Content Reference

5. Выбираем Content.

Add Content Reference

6. Правой кнопкой по вашему основному проекту (в моем случаи MyGame), выбираем пункт Project Dependencies.

Project Dependencies

И там ставим галочку у  ContentLibrary. Это обеспечит компиляцию контента перед компиляцией игры.

Использование

Добавляем ресурсы в проект Content. После делаем Build Solution.

Далее в основной проект добавляем файл ресурса с расширением XNB из папки   ContentLibrary\bin\Windows Phone\Debug\Content по ссылке (Add As Link).

Add As Link

Также нужно не забывать выставлять у XNB файлов Build Action в Content.

XNB Build Action - Content

Пример