Итак, начнем с того что я хотел написать продолжение своей предыдущей статьи о разработке игр для Windows Phone 7 на XNA, но у меня ничего не получилось. Почему? Сейчас расскажу.
Начальные условия: недавноустановленная Windows 7 Professional + минимум необходимого софта (браузер, антивирус, аська). Ну и плюс Visual Studio 2010 Ultimate с русской локализацией.
Сначала я предпринял попытку установить Windows Phone 7 Developer Tools, но мастер установки порадовал меня малоинформативным окном:
Чтение логов не дало никакой полезной информации, и я просто-напросто удалил весь софт каким-либо образом связанный с Silverlight:
Сказано-сделано и после проведенных манипуляций тулзы соизволили установиться и стали доступны в Visual Studio:
Намечаемое продолжение статьи должно было рассказывать о поддержке кириллицы, поэтому я решил вначале написать о шрифтах, которые как предполагает Microsoft разработчики игр могут использовать в своих приложениях. В комплекте с XNA Game Studio идут следующие шрифты:
- Kootenay
- Lindsey
- Miramonte
- Pericles
- Pescadero
Если использовать их для отображения латиницы, то все просто класс — шрифты красивые и читаемые, но если мы хотим написать такими шрифтами что-то на кириллице, то результат просто ужасен. На следующем скриншоте я сравнил три шрифта из комплекта поставки и стандартный шрифт Arial:
Потом я проверил как XNA работает с ресурсами, в названии которых присутствует кириллица. Добавив к ресурсам файл Лена.jpg и изменив код метода Draw, отвечающего за рендеринг я запустил проект на исполнение. Как оказалось все работает прекрасно)
«Ну и отлично!» — подумал я и сконвертировал проект под Windows Phone 7.
Но не тут-то было! Visual Studio отказывалась компилировать полученный проект ссылаясь на нехватку вначале одного:
А потом и другого файла манифестов:
Решением оказалось копирование аналогичных файлов из другого проекта под Windows Phone 7. Обратите внимание: в WindowsPhoneManifest.xml в поле ProductID нужно подставить GUID вашего приложения из AssemblyInfo.cs:
Однако эмулятор после успешной компиляции и запуска проекта не захотел показывать ничего, кроме черного экрана. Я подумал что все дело в Лене и оказался прав: после закомментирования Лены эмулятор сменил черный экран на синий:
«Но где же текст?» — спросите вы. А я вам отвечу — «Не знаю». Вначале я подумал что неправильно сконвертировал проект. Чтобы проверить эту догадку я запустил установленную вместе с тулзами Microsoft Visual Studio 2010 Express for Windows Phone и создал там новый проект игры для Windows Phone 7. Добавив несколько строк кода, отвечающих за вывод строки «Test» и шрифт Arial я нажал Ctrl+F5 и получил все то-же отсутствие текста:
Тут я подумал о корректности выполненной установки тулзов и загрузил в студию проект из прошлой статьи. Как ни странно он тоже ограничился показом черного экрана:
У меня есть несколько возможных версий такого поведения эмулятора:
- Какая-то странная несовместимость средств разработки и локализованной студии
- Кривая установка (наиболее вероятный вариант)
- Ошибка в дистрибутиве: SDK устанавливается из веб-инсталлера, возможно при скачке что-то пошло не так
- Комбинация вышеуказанного
К нашему счастью это всего лишь CTP, уверен, что к релизу подавляющее большинство багов будет пофиксено. Да и следует заметить, что сама по себе конфигурация из локализованной студии и XNA SDK является нестандартной, редко кто из гейм-девелоперов использует локализованную среду. Статья, которую я написал, получилась слегка сумбурной, но в ней я попытался максимально точно описать проблемы с которыми вы можете столкнуться во время разработки своих проектов.
И как-всегда что-почитать:
P.S. Господа минусующие! Прошу вас, напишите комментарий что вам не понравилось в статье и как ее можно улучшить.