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

ЖАНРЫ

Создание игр для мобильных телефонов
Шрифт:

Метод начинается с очистки холста и заполнения его черным цветом. Затем изменяется цвет точки на белый и выводится текст. Сначала определяется размер экрана, этот параметр выводится по центру в верхней части экрана. Далее определяется число доступных цветов и альфа-уровней, эта информация тоже выводится на экран. И, наконец, выводится информация об общем количестве памяти и объеме свободной памяти.

...

В копилку Игрока

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

Теперь, когда написание кода завершено, вы почти готовы к сборке и тестированию мидлета Skeleton.

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

Подготовка мидлета для распространения

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

В нашем примере единственным ресурсом является пиктограмма, отображаемая рядом с мидлетом на экране устройства. Чуть позже я поясню все, что касается пиктограмм. А пока давайте рассмотрим файл манифеста. Файл манифеста – это специальный текстовый файл, который содержит перечень свойств мидлета и их относительных значений. Эта информация очень важна, поскольку определяет название, пиктограмму и классовое имя каждого мидлета из JAR-файла, а также особые версии CLDC и MIDP, используемыми мидлетом. Помните, что в одном JAR-файле может храниться несколько мидлетов, при этом такой JAR-файл называется пакетом мидлетов.

...

Совет Разработчику

Примеры, рассматриваемые в книге, используют MIDP 2.0 и CLDC 1.0. Хотя некоторые мобильные телефоны поддерживают CLDC 2.0, версия CLDC 1.0 в большинстве случаев достаточна для программирования игр. Однако профиль MIDP 2.0 очень важен, поскольку в API было добавлено несколько возможностей, очень полезных для разработки мобильных игр.

Манифест пакета мидлетов должен иметь имя Manigfest.mf и размещаться в JAR-архиве вместе с ресурсами и классами мидлета. Ниже приведен код файла манифеста, ассоциированном с мидлетом Skeleton.

MIDlet-1: Skeleton, /icons/Skeleton_icon.png, SkeletonMIDlet

MIDlet-Name: Skeleton

MIDlet-Description: Skeleton Example MIDlet

MIDlet-Vendor: Stalefish Labs

MIDlet-Version: 1.0

MicroEdition-Configuration: CLDC-1.0

MicroEdition-Profile: MIDP-2.0

Первая строка файла манифеста определяет имя мидлета, а также его пиктограмму и имя выполняемого файла класса. Вы, вероятно, заметили, что свойство называется MIDlet-1. Если вы включите дополнительные мидлеты в пакет, то ссылаться на них следует MIDlet-2, MIDlet-3 и т. д. Свойства MIDlet-Name, MIDlet-Description, MIDlet-Vendor и MIDlet-Properties относятся ко всему пакету мидлетов. Однако в нашем случае мидлет Skeleton – единственный мидлет в пакете, поэтому нет ничего плохого в именовании всего пакета Skeleton. Два последних свойства определяют версию используемых мидлетом конфигурации и профиля: CLDC 1.0 и MIDP 2.0.

Ранее я упоминал, что наряду с файлами класса и файлом манифеста в JAR-архив необходимо включить файлы ресурсов. Как минимум мидлет должен иметь пиктограмму. Пиктограмма – изображение размером 12 12 пикселей, сохраненное в формате PNG. В зависимости от экрана телефона это может быть как цветное изображение, так и черно-белое. Я создал маленькое изображение черепа для мидлета Skeleton и сохранил его в файле Skeleton_ion.png.

Одно небольшое замечание касательно пиктограммы мидлета: она должна храниться в папке icons внутри JAR-архива. Подобно ZIP-файлам, вы можете помещать папки с файлами внутрь JAR-архивов. Чтобы поместить такой файл в JAR-архив, вы должны сослаться на этот файл из вложенной папки. Это что-то вроде неофициального соглашения помещать ресурсы мидлета в папку res, расположенную в папке с основным кодом приложения. Зная это, пиктограмму проще всего разметить внутри папки res в папке icon.

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

Рис. 3.2. Придерживаясь простых правил организации данных внутри архива мидлета, вы сможете легко организовать все файлы

Папки на рисунке используются для хранения следующих файлов:

► src – файлы кода Java;

► bin – файл манифеста, JAD-файл и JAR-файл;

► classes – компилированные файлы байт-кода Java;

► tmpclasses – компилированные фалы байт-кода Java, прошедшие предварительную верификацию;

► res – файлы

всех ресурсов, кроме пиктограмм (изображения, звуки и т. п.);

► res/icons – файлы пиктограмм.

...

Совет Разработчику

Примеры мидлетов, включенных в состав J2ME Wireless Toolkit (среди них вы можете найти и игры, которые вы видели в предыдущей главе), построены согласно этому правилу.

Для распространения мидлета необходим не только файл манифеста, включаемый в JAR-файл, но и специальный дескриптор. Дескриптор приложения (application descriptor), или файл JAD, содержит информацию, подобную той, что хранится в файле манифеста. JAD-файл используется эмулятором J2ME при тестировании мидлета. Ниже приведено содержание дескриптора мидлета Skeleton:

MIDlet-1: Skeleton, /icons/Skeleton_icon.png, SkeletonMIDlet

MIDlet-Name: Skeleton

MIDlet-Description: Skeleton Example MIDlet

MIDlet-Vendor: Stalefish Labs

MIDlet-Version: 1.0 //Это ваша версия мидлета

MicroEdition-Configuration: CLDC-1.0

MicroEdition-Profile: MIDP-2.0

MIDlet-Jar-Size: 2491 //Если это значение не равно размеру JAR-файла, мидлет не запустится

MIDlet-Jar-URL: Skeleton.jar

За исключением двух последних строк, JAD-файл содержит информацию, с которой вы уже знакомы. Две последние строки определяют размер JAR-файла мидлета (в байтах) и его имя. Очень важно обновлять информацию о размере JAR-файла каждый раз, когда вы заново упаковываете мидлет, поскольку его величина скорее всего изменится при очередной сборке.

Сборка и тестирование завершенного приложения

В предыдущей главе вы познакомились с инструментом визуальной среды разработки KToolbar, который позволяет собирать и запускать мидлеты, затрачивая минимум усилий. Чтобы собрать мидлет Skeleton с помощью инструмента KToolbar, вы должны полностью скопировать в папку apps, расположенную в папке установки J2ME Wireless Toolkit. После того как Skeleton скопирован, вы можете открыть это приложение в KToolbar, для чего на инструментальной панели щелкните по кнопке Open Project (Открыть проект).

После того как проект открыт, щелкните по кнопке Build (Собрать), и мидлет Skeleton будет собран. Чтобы запустить приложение в эмуляторе J2ME, щелкните по кнопке Run (Запустить), расположенной на панели инструментов. На рис. 3.3 показан мидлет Skeleton, готовый к запуску в эмуляторе.

Рис. 3.3. Мидлет Skeleton можно запустить с помощью менеджера приложений в эмуляторе J2ME

Поскольку Skeleton – это единственный мидлет в пакете, он уже подсвечен и готов к запуску. Чтобы запустить приложение, на клавиатуре устройства щелкните по кнопке Action (Действие), расположенной между кнопками, или по экранной кнопке Launch (Запустить), или просто нажмите клавишу Enter (Ввод). На рис. 3.4 показан мидлет Skeleton в эмуляторе.

Рис. 3.4. Мидлет Skeleton выводит информацио о ресурсах мобильного телефона: размер экрана, число отображаемых цветов и т. д.

Чтобы выйти из приложения Skeleton, щелкните по экранной кнопке Exit (Выход). Вызовется команда Exit, и мидлет будет разрушен. Чтобы завершить работу мидлета, вы также можете нажать кнопку End (Конец), которая используется в реальных телефонах для прекращения телефонного звонка.

Резюме

В этой главе вы, наконец, написали первый Java-код реального мидлета. Хотя мидлет не был игрой, вы создали его по принципу построения игры и подготовили мидлет для распространения. Эта глава познакомила вас с общей структурой мидлета, а также дала представление об устройстве J2ME API. Также вы узнали о жизненном цикле мидлета и методах класса мидлета, управляющих его жизненным циклом.

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

Еще немного об играх

Прежде чем завершить эту главу, я хочу описать еще пару шагов, чтобы вы увереннее чувствовали себя, разрабатывая мидлеты. Выполните следующие шаги, чтобы изменить пиктограмму мидлета Skeleton:

1. создайте другую пиктограмму для мидлета Skeleton, убедитесь, что она сохранена в файле формата PNG, ее размер 12 12, и она размещена в папке res/icons;

2. измените манифест и JAD-файлы так, чтобы мидлет мог использовать другой файл с пиктограммой;

3. перестройте мидлет и протестируйте его, используя KToolbar.

Если все сделано верно, то при запуске приложения в эмуляторе, вы увидите новую пиктограмму.

Поделиться с друзьями: