Freigeben über


Серия статей «XNA для разработчиков Silverlight»

Грег Дункан

clip_image002

Разработка XNA может вызвать психический сдвиг у обитателей мира обычных клиентский приложений. Для всех них, включая меня, XNA кажется «очень низкоуровневым» (да-да, я знаю, что сейчас говорят ребята, занимающиеся кодированием на ассемблере/C++/MFC и языке IL в Notepad – «Ха! Ну-ну, … умереть от смеха! clip_image004).

Приобретение такого навыка в заданное время может оказаться жестким. Вот почему, когда я увидел серию статей Питера Куна (Peter Kuhn или Mister Goodcat), я решил поделиться с вами, чтобы помочь освоить материал.

Отрывок из XNA для разработчиков Silverlight: Часть 0 – Почему стоит беспокоиться?

Введение

Примерно тогда, когда на рынке появились первые устройства Windows Phone 7, одним из популярных утверждений, которое можно услышать было: «каждый Silverlight-разработчик является также разработчиком Windows Phone 7» – и это правда. Silverlight – основная платформа Microsoft для разработки в Windows Phone 7, и каждый программист настольных приложений в Silverlight сразу же будет себя комфортно чувствовать в среде разработки новых мобильных приложений. Конечно, есть различия и специфические для устройств библиотеки, но вам не надо изучать новый язык программирования или новые способы задания интерфейса, и можно использовать ту же среду разработки, которая применялась для обычной Silverlight-разработки всё время. И это прекрасно!

Однако, Silverlight не единственный способ создания программ для устройств Windows Phone 7, кроме него есть и XNA. Большинство людей, интересовавшихся разработкой новой мобильной платформы, возможно уже читали о нём, скорее всего в контексте программирования игр. В этой статье я попытаюсь дать быстрый обзор XNA на мобильной платформе для разработчиков Silverlight, которые до этого не имели дела с этой технологией. В статье объясняются возможности взаимодействия между Silverlight и XNA, и причины, по которым вы, как Silverlight-разработчик, должны внимательно относиться к XNA, даже если вы не хотите разрабатывать игры.

В следующих статьях этой серии, мы познакомимся с деталями программирования двухмерных игр для Windows Phone 7 с использованием XNA, специально заострив внимание на частях, которые требуют смены мышления при переходе с Silverlight. Я всячески поддерживаю комментирование вами каждой части и запросы дополнительной информации по интересующим вас темам. Возможно, ваши отзывы напрямую повлияют на содержание будущих статей.

...

Я рад практическим советам по выбору между XNA и SilverLight.

...

Выбирая между Silverlight и XNA

Так как технология XNA специально посвящена разработке игр, многие воспринимают ее, как единственную возможность создания игр для Windows Phone 7, другие даже полагают, что есть сертификационные требования для использования XNA, если вы хотите опубликовать приложение в игровой секции магазина приложений. Нельзя быть дальше от истины. Вы также можете выбрать Silverlight в качестве инструмента разработки для создания игр. Фактически, я знаю несколько игр в магазине приложений, которые были сделаны с помощью Silverlight, и решение о выборе технологии должно приниматься осторожно, чтобы оптимизировать процесс разработки в смысле эффективности в зависимости от требований.

Когда выбирать XNA ...

Когда выбирать Silverlight ...

Каждая статья этой серии построена, основываясь на предыдущей, и не только включает в себя исходники, но и, кроме того, объясняет теорию и идеи, стоящие за ними. Не только «как», но и «почему»…

Например, в статье «XNA для разработчиков Silverlight: Часть 1 - Основы» мы обсуждаем фундаментальные различия между SilverLight и XNA;

...

Управление событиями против опроса

В Silverlight, когда вы интересуетесь любым типом данных или информацией, общим способом ее получения является подписка на определенное событие (к ним я также отношу обратные вызовы и подобные конструкции). Не имеет значения, является ли это действием пользователя, о котором вы хотите получить уведомление, поступлением данных от завершенной асинхронной операции или другой операции, требующей передачи данных: среда исполнения, компоненты сторонних фирм или другие созданные вами объекты посылают уведомления, когда данные, которых вы ждете, готовы. Также это работает и в обратную сторону. Если вы хотите кого-то уведомить о том, что произошло что-то интересное, например, возник сигнал для пользовательского интерфейса, показывающий, что данные изменились, то вы генерируете событие. Мы все выросли, используя интерфейсы подобные INotifyPropertyChanged, не так ли?

В XNA картина совершенно другая. Куча работы уходит на опрос. Например, вместо получения уведомления о событии, что пользователь коснулся экрана, вы постоянно задаете вопрос экрану, не произошло ли чего-то интересного с момента последнего вопроса. Как в долгом путешествии в машине, когда ваши дети поминутно интересуются с заднего сиденья «еще не приехали?»; в XNA вы – дети, и вы спрашиваете 30 раз в секунду.

clip_image006

Как отправную точку для разработчиков Silverlight, желающих войти в курс XNA, эту серию сложно превзойти.

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