Развлекуха для кодера 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; |