Чтение онлайн

на главную - закладки

Жанры

Программирование КПК и смартфонов на .NET Compact Framework

Климов Александр Петрович

Шрифт:

Метод Bitmap.Save

На старых устройствах также отсутствовали конвертеры графических изображений, что не позволяло сохранять изображения в форматах GIF, JPG или PNG. Разработчикам приходилось довольствоваться только форматом BMP. Причем при написании программы среда разработки позволяла писать неправильный код, выводя соответствующие подсказки. Однако при вызове этого метода программа выводила сообщение об ошибке. В Windows Mobile 5.0 теперь поддерживаются все четыре формата.

Глава 11

Создание игр

Игры на мобильных устройствах

Создание

игр — одно из самых любимых занятий для программистов. При создании новой игры автору приходится быть и художником, и композитором, и дизайнером, и бухгалтером. Естественно, в данном случае речь идет о программисте-одиночке. Разработка игр для мобильных устройств не требует больших финансовых затрат, которые имеют место при создании игр для настольных компьютеров крупными компьютерными фирмами. На мой взгляд, карманные компьютеры идеально подходят для логических и аркадных игр, с помощью которых можно скоротать время во время путешествия, долгого ожидания в очередях или при поездке на работу.

Рис. 11.1. Раздел MSDN, посвященный играм

Если в вашей коллекции уже есть игры для настольных компьютеров, написанные с использованием .NET Framework, то в большинстве случаев вам не составит труда портировать их для мобильных устройств. Я хочу познакомить вас с играми, которые уже написаны для КПК и смартфонов. Надо сказать, что существует определенная категория программистов, которые не читают документацию и ищут материалы по заданной теме в книгах и на сайтах. Но это не самое правильное поведение. Компания Microsoft очень часто размещает примеры написания игр в своих справочных системах. Очень много статей на тему разработки игр можно найти в MSDN. В этой коллекции статей и документации есть целый раздел, посвященный созданию игр, под названием «Graphics, Audio and Gaming» (рис. 11.1).

Продуктовая аркада

Для начала имеет смысл рассмотреть игру Bouncer, которую можно найти на веб-странице по адресу msdn.microsoft.com/library/default.asp?url=/library/en-us/dnnetcomp/html/gamesprogwithcheese.asp. Автор игры Роб Майлз (Rob Miles) написал четыре большие статьи об этой игре, которая использует в качестве игровых объектов кусочки сыра, батон хлеба и яблоки. Интересно, что сначала статьи писались о версии игры для .NET Compact Framework 1.0 для смартфонов под управлением Windows Mobile 2003 с использованием Visual Studio .NET 2003. Но к настоящему моменту игра была переписана для смартфонов под управлением Windows Mobile 5.0.

ПРИМЕЧАНИЕ

К слову сказать, когда я читал эти статьи в 2004 году, у меня еще не было смартфона. И тогда я переписал игру для своего карманного компьютера, чтобы поиграть в аркаду на настоящем устройстве.

Автор шаг за шагом раскрывает перед программистом тонкости процесса разработки игры, начиная с создания пустого проекта и заканчивая написанием полноценной игровой модели. Роб Майлз любезно разрешил использовать исходный код игры на страницах книги, а в архиве программ вы найдете установочный файл, содержащий исходные коды игры. Когда вы запустите установочный файл, то программа установки скопирует файлы с примерами в папку

C:\Program Files\Windows Mobile Developer Samples\Games Programming With Cheese Part 1
. В этом каталоге будут расположены еще семь папок с проектами, которые шаг за шагом ведут программиста к написанию игры.

Так как сама

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

Начало работы

Итак, прежде всего нужно создать новый проект для смартфона под управлением Windows Mobile 5.0 с использованием платформы .NET Compact Framework 2.0. Этот проект должен получить имя

Bouncer
.

Добавление изображения в программу

Наше приложение будет использовать графические изображения. Картинки, используемые в игре, хранятся в файле самой программы в виде ресурсов. Сначала надо подготовить сами рисунки для игры. Автор программы решил использовать для игры различные виды продуктов.

Возьмем, к примеру, изображение кусочка сыра. Файл с изображением сыра надо скопировать в папку, в которой хранятся файлы проекта. Затем следует щелкнуть правой кнопкой мыши на названии проекта

Bouncer
в окне
Solution Explorer
, выбрать пункт контекстного меню
Add
, а затем перейти к пункту подменю
Add Existing Item
. В диалоговом окне
Add Existing Item
надо выбрать файл
cheese.gif
. После этого остается нажать кнопку
Add
. Картинка теперь добавлена в проект, но еще не является частью программы.

Необходимо указать, что графический файл будет храниться в виде встроенного ресурса. Нужно щелкнуть правой кнопкой мыши на значке графического файла в окне

Solution Explorer
и выполнить команду контекстного меню
Properties
. В разделе
Build Action
по умолчанию используется пункт
Content
. Но в данном случае нужно указать пункт
Embedded Resource
.

Теперь картинка является частью сборки, и для распространения программы нам понадобится единственный исполняемый файл, в котором будут содержаться все необходимые изображения.

Использование встроенных ресурсов

При работе программы необходимо получить доступ к графическому файлу из ресурсов и вывести изображение на экран. Для этого сначала необходимо получить ссылку на сборку. Соответствующий код приведен в листинге 11.1.

Листинг 11.1

// Получим ссылку на сборку

System.Reflection.Assembly execAssem =

 System.Reflection.Assembly.GetExecutingAssembly;

Метод

System.Reflection.Assembly.GetExecutingAssembly
возвращает сборку, из которой выполняется текущий код. Получив в программе ссылку на сборку, можно получить доступ к встроенным ресурсам, в том числе к изображению сыра. Метод
GetManifestResourceStream
позволяет извлекать указанный ресурс из сборки. Для этого нам надо указать имя файла и название пространства имен. В нашем случае это будет
Bouncer.cheese.gif
, как показано в листинге 11.2.

Поделиться:
Популярные книги

Газлайтер. Том 10

Володин Григорий
10. История Телепата
Фантастика:
боевая фантастика
5.00
рейтинг книги
Газлайтер. Том 10

На границе империй. Том 7. Часть 2

INDIGO
8. Фортуна дама переменчивая
Фантастика:
космическая фантастика
попаданцы
6.13
рейтинг книги
На границе империй. Том 7. Часть 2

Звездная Кровь. Изгой

Елисеев Алексей Станиславович
1. Звездная Кровь. Изгой
Фантастика:
боевая фантастика
попаданцы
рпг
5.00
рейтинг книги
Звездная Кровь. Изгой

Хозяин Теней 4

Петров Максим Николаевич
4. Безбожник
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Хозяин Теней 4

Картофельное счастье попаданки

Иконникова Ольга
Фантастика:
фэнтези
5.00
рейтинг книги
Картофельное счастье попаданки

Экзорцист: Проклятый металл. Жнец. Мор. Осквернитель

Корнев Павел Николаевич
Фантастика:
фэнтези
героическая фантастика
5.50
рейтинг книги
Экзорцист: Проклятый металл. Жнец. Мор. Осквернитель

Доктора вызывали? или Трудовые будни попаданки

Марей Соня
Фантастика:
юмористическая фантастика
попаданцы
5.00
рейтинг книги
Доктора вызывали? или Трудовые будни попаданки

Метатель

Тарасов Ник
1. Метатель
Фантастика:
боевая фантастика
попаданцы
рпг
фэнтези
фантастика: прочее
постапокалипсис
5.00
рейтинг книги
Метатель

Моя на одну ночь

Тоцка Тала
Любовные романы:
современные любовные романы
короткие любовные романы
5.50
рейтинг книги
Моя на одну ночь

Чехов. Книга 2

Гоблин (MeXXanik)
2. Адвокат Чехов
Фантастика:
фэнтези
альтернативная история
аниме
5.00
рейтинг книги
Чехов. Книга 2

Хозяин Теней 2

Петров Максим Николаевич
2. Безбожник
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Хозяин Теней 2

Сумеречный стрелок 7

Карелин Сергей Витальевич
7. Сумеречный стрелок
Фантастика:
городское фэнтези
попаданцы
аниме
5.00
рейтинг книги
Сумеречный стрелок 7

Жизнь под чужим солнцем

Михалкова Елена Ивановна
Детективы:
прочие детективы
9.10
рейтинг книги
Жизнь под чужим солнцем

Красноармеец

Поселягин Владимир Геннадьевич
1. Красноармеец
Фантастика:
боевая фантастика
попаданцы
4.60
рейтинг книги
Красноармеец