Помните, что мидлет может входить и выходить из состояний Active и Paused не один раз в течение жизненного цикла. Но если мидлет войдет в состояние Destroyed, он уже не сможет вернуться обратно. С этой точки зрения, отдельный игровой мидлет может прожить лишь одну жизнь.
Команды мидлета
Кроме переопределения методов жизненного цикла, большинство мидлетов реализуют метод commandAction(), обработчик событий, определенный интерфейсом javax.microedition.ldui.CommandListener. Команды используются для контроля игровых мидлетов и инициализации таких действий, как приостановка игры, сохранение данных, изменение настроек и выход из игры. Команды мидлета доступны через экранные кнопки (soft button) или меню и должны обрабатываться методом commandAction().
В копилку Игрока
Экранные кнопки (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. Нельзя отображать экран и холст одновременно, однако вы можете переключаться между отображениями.
Основы разработки мидлетов