Развлекуха для кодера 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). Изначально нужно стремиться к тому, чтобы мобильные объекты были простейшие – обычные линии. Перейдем к игровому циклу. Вот длинный список того, что нужно проконтролировать: - выяснить, попала ли какая-нибудь ракета в астероиды, и осуществить взрыв; - отследить перемещение астероидов; - сделать то же с перемещением ракет; - предусмотреть поворот и движение корабля; - проверить, не погиб ли корабль; - досмотреть отображение текущего состояния на экране сотового (нужно нарисовать фоновый экран, текущие очки и уровень игры, все астероиды, ракеты и космический корабль или же вообще экран зала славы, например). Для управления просто запоминай нажатую клавишу и обрабатывай ее в главном цикле. Если выполнено все технически необходимое кодирование, то базовая версия игры, которая будет идти на большинстве сотовых телефонов, выполняя заданные тобой функции, уже получена. Постепенное развитие Посмотреть информацию о возможности добавления к игре различных зависимых от устройства приблудов ты можешь увидеть на врезке "Дополнительные возможности". Но вначале лучше оценить и решить, что развивать дальше: общие возможности программы, ее структуру или же различные игровые аспекты. |