Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #56, ИЮЛЬ 2005 г.

Развлекуха для кодера

Denis Mingulov

Спецвыпуск: Хакер, номер #056, стр. 056-064-2


Базовая версия

Что же делать в мидлете? Определить поведение программы. Запустить таймер, инициализировать генератор случайных чисел, создать все нужные объекты и установить меню программы. И приведу такой жестокий программный код (для краткости инициализация показана в той же строке):

public static Random random = new Random();

public static Field field = new Field();

public static Display display = Display.getDisplay(this);

private static Command _exitCommand = new Command("Exit", Command.EXIT, 1);

field.addCommand(_exitCommand);

field.setCommandListener(this);

private static Displayable _currentDisplayable = field;

public static Timer timer = new Timer();

display.setCurrent(displayable);

Переопределяем pauseApp(), destroyApp(boolean unconditional) и startApp() (кстати, не забудь самостоятельно очистить за собой весь мусор в случае выхода из приложения).

В основном игровом цикле обязательно определим размеры доступного экрана и отрисуем все пропорционально так, чтобы дисплей всегда был занят изображением полностью. По возможности нужно использовать буферизацию: _buffer = Image.createImage(Mobile.width, Mobile.height), а при прорисовке в paint(Graphics g) сначала выбираем Graphics gr = (_buffer != null) ? _buffer.getGraphics() : g, а после всех действий - g.drawImage(_buffer, 0, 0, Graphics.TOP|Graphics.LEFT). Впрочем, проверка здесь не помешает: не используй offline screen, если телефон сам выполняет все необходимые действия (DoubleBuffer). Изначально нужно стремиться к тому, чтобы мобильные объекты были простейшие – обычные линии.

Перейдем к игровому циклу. Вот длинный список того, что нужно проконтролировать:

- выяснить, попала ли какая-нибудь ракета в астероиды, и осуществить взрыв;

- отследить перемещение астероидов;

- сделать то же с перемещением ракет;

- предусмотреть поворот и движение корабля;

- проверить, не погиб ли корабль;

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

Для управления просто запоминай нажатую клавишу и обрабатывай ее в главном цикле.

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

Постепенное развитие

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

Назад на стр. 056-064-1  Содержание  Вперед на стр. 056-064-3