45 дней с Windows Phone 7. День #21. Приложения и игры.
<< День #20. Уведомления (Push Notifications).| День #22. Trial (пробная) версия приложения. >>
Это двадцать первая статья серии «45 дней с Windows Phone 7».
Многие разработчики, создающие Windows Phone 7 Silverlight приложения, хотят использовать Silverlight, в том числе и для написания игр. Хотя основной платформой, позволяющей создавать игры для телефонов, является XNA, Silverlight также является мощной платформой для работы с графикой, поэтому игры, написанные на Silverlight, имеют такое же право на существование, как и XNA игры.

Если Вы создадите Silverlight Windows Phone 7 приложение (или XNA игру) и запустите его на эмуляторе, то данное приложение будет отображаться в списке всех установленных приложений телефона (данный список появляется при нажатии стрелочки вправо на главном экране). Но на реальном телефоне игры отображаются не в данном списке, а в специальном хабе «Games». Есть очень простой способ сделать так, чтобы Ваши приложения тоже отображались в данном хабе. Но делать это стоит, только если приложение действительно являются игрой. Попытка разместить приложение, не являющееся игрой, в хабе «Games» – повод для отказа в публикации приложения в Marketplace.
Помните день #1?
В первом дне данной серии мы рассматривали все файлы, входящие в проект Silverlight Windows Phone 7 приложения. В том числе и файл «WMAppManifest.xml» (он находится в папке «Properties»). Данный файл как раз и позволяет указать, что наше приложение является игрой и будет размещаться в хабе «Games».

Внутри файла «WMAppManifest.xml» находятся метаданные приложения, в том его имя, иконка, путь к стартовой странице и.т.д.
Кстати, изменение стартовой страницы – хороший способ ручного тестирования приложения. Например, вместо того, чтобы при отладке вначале загружать какую-то базовую страницу приложения, а уже потом с помощью навигации переходить на ту страницу, которую требуется отладить, можно сразу указать отлаживаемую страницу в качестве стартовой, а также передать ей некоторые параметры. Например, укажем, что вначале будет загружаться страница «ProductPage.xaml»:
<Tasks> <DefaultTask Name ="_default" NavigationPage="ProductPage.xaml?id=42"/> </Tasks>
Естественно, перед этим страницу «ProductPage.xaml» надо создать. Но вернёмся к задаче размещения нашего приложения в хабе «Games». Для этого изменим свойство «Genre» – жанр тега «App». Вот как выглядит данный тег по умолчанию (естественно, Ваших приложениях многие значения будут отличаться):
<App xmlns="" Genre="apps.normal"
ProductID="{6b6bf47b-9652-47d3-8758-fd1b11f99971}"
Title="Day22_AppsVsGames"
RuntimeType="Silverlight" Version="1.0.0.0"
Author="SergeyPugachev"
Description="An amazing demo on how to change your app's location."
Publisher="pugachve.info">
Значением жанра по умолчанию является «apps.normal». Поменяем данное значение на используемое для игр: «apps.games».
Теперь после запуска приложения на эмуляторе оно не будет отображаться в стандартном списке приложений, а так как хаба «Games» на эмуляторе нет, то приложение как будто исчезнет с телефона (запускаться из Visual Studio оно, конечно, продолжит). Далее приведу модифицированную версию тега «App»:
<App xmlns="" Genre="apps.games"
ProductID="{6b6bf47b-9652-47d3-8758-fd1b11f99971}"
Title="Day22_AppsVsGames"
RuntimeType="Silverlight" Version="1.0.0.0"
Author="SergeyPugachev"
Description="An amazing demo on how to change your app's location."
Publisher="pugachve.info">
Теперь при отладке приложения на реальном устройстве, Вы найдёте его в хабе «Games».

На данной фотографии моё приложение Вы найдёте в левом нижнем углу. Оно имеет стандартную иконку.











