Оценить:
 Рейтинг: 0

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

Год написания книги
2011
<< 1 ... 5 6 7 8 9 10 11 12 13 ... 23 >>
На страницу:
9 из 23
Настройки чтения
Размер шрифта
Высота строк
Поля

Экранные кнопки (soft buttons) – это специальные кнопки, расположенные на дисплее мобильного телефона. Они предназначены для выполнения специальных команд мидлетов. Щелчок по кнопке выполняет команду, с которой эта кнопка связана. Щелчки по кнопкам для управления игрой обрабатываются иначе, чем нажатия экранных кнопок. Подробнее вы узнаете об этом из главы 6.

Дисплей, экраны и холсты

Одна из важнейших концепций мидлетов, которой стоит уделить внимание, – это класс Display, представляющий собой менеджер экрана мобильного устройства. Класс Display определен в пакете javax.microedition.lcdui, как и GUI-классы. Этот класс отвечает за управление экраном и вводом пользователя.

Вам не придется создавать объект Display, обычно вы получаете ссылку на объект Display в методе startApp() игрового мидлета, после чего настраиваете экран и пользовательский интерфейс. Для каждого мидлета, выполняемого на устройстве, существует только одно представление Display.

Другой важный класс, имеющий отношение к экрану устройства, – это javax.miccroedition.lcdui.Canvas, который представляет собой абстрактную поверхность для рисования, размер которой равен размеру экрана. Холст (canvas) используется для выполнения прямых операций рисования, например, рисования линий и кривых или отображения картинок. Как вы, вероятно, можете догадаться, холсты формируют основу для вывода игровых изображений. На самом деле существует специальный класс javax.microedition.lcdui.GameCanvas, который предназначен для создания графики для игр. Класс GameCanvas отличается от класса Canvas тем, что поддерживает высокоэффективные средства отображения анимации, часто применяемой в играх.

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

Если вы создаете игру с возможностью изменения настроек, или вам необходимо получить информацию от пользователя, используйте класс javax.microedition.lcdui.Screen. Экран (screen) – это настраиваемый GUI-компонент мидлета, который служит базовым классом для других важных компонентов. Значимость экранов заключается в том, что они отображают всю экранную информацию. Несколько экранов не могут отображаться одновременно. Вы можете представить несколько экранов как карты, которые берете одну за другой. Большинство мидлетов используют классы javax.miroedition.lcdui.Form, javax.miroedition.lcdui.TextBox, или javax.miroedition.lcdui.List, поскольку они предоставляют широкие возможности. Экраны можно использовать в совокупности с объектами класса Canvas, в результате чего для игрового мидлета можно создать полноценный GUI. Нельзя отображать экран и холст одновременно, однако вы можете переключаться между отображениями.

Основы разработки мидлетов

Прежде чем приступить к разработке мидлетов, необходимо установить J2ME Wireless Toolkit, который находится на прилагаемом компакт-диске. Вы также можете использовать инструменты для разработки мобильных приложений, выпускаемые другими компаниями, если вашей целью является написание приложения для конкретной модели телефона. Но если вы хотите эмулировать мобильные телефоны с поддержкой Java на компьютере, можно использовать J2ME Wireless Toolkit.

Чтобы воплотить концепцию мидлета в реальность, необходимо:

1. разработать файлы кода;

2. скомпилировать файлы с исходным кодом в классы байт-кода;

3. выполнить предварительную верификацию классов байт-кода;

4. упаковать файлы байт-кода в файл JAR, добавить необходимые ресурсы и файлы манифеста (подробнее об этом чуть позже);

5. разработать JAD-файл (описатель приложения), сопровождающий JAR-файл;

6. протестировать и отладить мидлет.

Шаг 1 выполняется в обычном текстовом редакторе. Если у вас нет специального редактора кода, можно воспользоваться, например, текстовым редактором Notepad. Шаг 2 подразумевает использование стандартного компилятора Java для компиляции файлов мидлета с исходным кодом. На шаге 3 необходимо выполнить предварительную верификацию скомпилированного кода, для чего используйте специальный инструмент предварительной верификации. На шаге 4 выполняется упаковка файлов кода мидлета в Java-архив (JAR). Шаг 5 требует создания специального файла описания – текстового файла, содержащего информацию о вашем мидлете. И, наконец, на шаге 6 вы можете протестировать мидлет в эмуляторе J2ME.

Хотя вы можете выполнить каждый из этих шагов, используя инструменты J2ME Wireless Toolkit, вызываемые из командной строки, в предыдущей главе вы увидели, как просто собираются и тестируются приложения в среде Sun KToolbar.

Создание примера игры Skeleton

Я бы хотел рассказать вам о создании трехмерной игры в реальном времени для нескольких игроков, однако из-за большой сложности это затруднит понимание того, как устроен и написан мидлет. Для начала вы узнаете, как построить простейший мидлет, который называется Skeleton. Этот мидлет отображает текстовую информацию о мобильном телефоне. Поскольку эта информация содержит очень важные параметры телефона (размер игрового экрана и глубина цвета), полезно выполнять такую проверку на реальных устройствах.

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

1. написание кода мидлета;

2. компиляция мидлета;

3. предварительная верификация мидлета;

4. упаковка мидлета;

5. тестирование мидлета.

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

Написание программного кода

В этом разделе вы создадите код мидлета Skeleton. Первая часть создаваемого кода – это импорт нескольких важных пакетов J2ME. Вы можете не импортировать пакеты, а ссылаться на них через полное имя (например, javax.microedition.midlet.MIDlet), но это очень неудобно и делает код плохо читаемым. Поэтому первые две строки кода вашего мидлета импортируют два главных пакета, необходимых для разработки:

import javax.microedition.midlet.*;

import javax.microedition.lcdui.*;

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

Многие Java-программисты не одобряют импортирование целых пакетов с использованием группового символа * (звездочка), поскольку при этом не содержится информация об особых классах, которые вы импортируете. Однако это очень простой и быстрый способ импортировать все классы пакета, а для целей этой книги я буду использовать самый простой подход, чтобы сделать код как можно более понятным. Не бойтесь импортировать классы при написании собственного кода, это поможет вам сделать код более ясным.

Пакет javax.microedition.midlet включает поддержку класса MIDlet, в то время как пакет javax.microedition.lcdui включает поддержку классам и интерфейсам GUI, которые используются для создания GUI-мидлета, например, класс Display. Импортировав эти два пакета, вы можете объявить класс SkeletonMIDlet, производный от MIDlet:

public class SkeletonMIDlet extends MIDlet implements CommandListener }

Не удивительно, что класс SkeletonMIDlet расширяет MIDlet, но вот реализация интерфейса CommandListener может показаться весьма странной. Этот интерфейс необходим для создания команды Exit, которая позволяет пользователю выходить из мидлета. Если говорить более подробно, то интерфейс CommandListener реализован таким образом, чтобы мидлет мог отвечать на командные события.

Единственная переменная, член класса SkeletonMIDlet, – это объект SCanvas, который представляет главный экран:

private SCanvas canvas;

Класс SCanvas – это особый класс мидлета, производный от класса Canvas. Холст инициализируется в методе startApp():

public void startApp() {

if (canvas == null) {

canvas = new SCanvas(Display.getDisplay(this));

Command exitCommand = new Command("Exit", Command.EXIT, 0); //Создаем команду EXIT и добавляем ее в

canvas.addCommand(exitCommand); //класс Canvas. Теперь canvas сможет отвечать на эту команду

canvas.setCommandListener(this);

}

// Start up the canvas

canvas.start();

}

Метод startApp() вызывается при переходе мидлета в состояние Active, первым шагом является создание холста. Объект Display мидлета создается и передается при создании холста. Команда Exit создается путем передачи конструктору трех параметров: названия команды, ее типа и приоритета. Имя команды определяется пользователем и появляется как экранная кнопка на дисплее устройства в зависимости от приоритета и количества доступных кнопок. Тип команды должен быть определен одной из трех предопределенных констант – EXIT, OK или CANСEL.
<< 1 ... 5 6 7 8 9 10 11 12 13 ... 23 >>
На страницу:
9 из 23