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

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

Denis Mingulov

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


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

Если посмотреть еще внимательнее, то обнаружится, что космос в игре никак не обозначен: вакуум, пустота. Лучше добавить какой-нибудь фон. Воспользуйся image = javax.microedition.lcdui.Image.createImage("/splash.png") (взять файл изображения) и при отрисовке просто нарисуй его: Graphics g.drawImage(image, 0, 0, Graphics.TOP | Graphics.LEFT).

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

Создание готового продукта

Сам процесс компиляции не отличается от обычного для Java-программ - запуск javac с правильным набором библиотек и списком файлов.

Готовый JAR-файл отличается от обычной Java-программы тем, что в него добавлен манифест - различная информация о мидлете. Это файл META-INF\MANIFEST.MF, ниже представлены строки, минимально необходимые для него:

MIDlet-Name: Example - название программы

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

MIDlet-Vendor: Vendor - разработчик мидлета

MicroEdition-Profile: MIDP-1.0 - версия MID-профиля

MicroEdition-Configuration: CLDC-1.0 - версия конфигурации

MIDlet-1: Example, icon.png, mypackage.Example - Имя, Иконка, Главный класс

Все это может быть сделано автоматически из какой-нибудь среды разработки. Обязательно заполняй все данные правильно.

Распространение

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

Показ статического экрана

ТИП: Листинг

/* пример прорисовки титульного экрана

Используемые значения из Field: пытаемся получить шрифты с соответствующими атрибутами (маленький обычный и большой жирный):

public static Font smallFont = Font.getFont(Font.FACE_PROPORTIONAL, Font.STYLE_PLAIN, Font.SIZE_SMALL);

public static Font bigFont = Font.getFont(Font.FACE_PROPORTIONAL, Font.STYLE_BOLD, Font.SIZE_LARGE);

На самом деле в зависимости от реализации J2ME на устройстве, они могут оказаться одним и тем же шрифтом.

В текущем объекте вычисляем высоту этих шрифтов (для отрисовки по высоте):

private static int _smallFontHeight;

private static int _bigFontHeight;

static {

_smallFontHeight = Field.smallFont.getHeight();;

_bigFontHeight = Field.bigFont.getHeight();

}

*/

public static void drawTitleScreen(Graphics g) {

g.setColor(0x00000000); // выставляем черный цвет

g.setFont(Field.bigFont); // выбираем толстый шрифт

// Рассчитываем x для вывода отцентрированной строки _asteroid

int x = (Mobile.width - Field.bigFont.stringWidth(_asteroid)) %26gt;%26gt; 1;

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