Оценить:
 Рейтинг: 0

Создание игр для мобильных телефонов

Год написания книги
2011
<< 1 ... 13 14 15 16 17 18 19 20 21 ... 23 >>
На страницу:
17 из 23
Настройки чтения
Размер шрифта
Высота строк
Поля

public void pauseApp() {}

public void destroyApp(boolean unconditional) {}

public void commandAction(Command c, Displayable s) {

if (c.getCommandType() == Command.EXIT) {

destroyApp(true);

notifyDestroyed();

}

}

}

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

Тестирование готового приложения

Чтобы собрать и протестировать мидлет Olympics, скопируйте папку Olympics в папку apps, расположенную в папке установки J2ME Wireless Toolkit. Чтобы собрать мидлет, щелкните по кнопке Build (Собрать), а чтобы запустить эмулятор J2ME, щелкните по кнопке Run (Запустить). На рис. 4.5 показан мидлет The Olympics MIDlet.

Рис. 4.5. Мидлет The Olympics MIDlet демонстрирует построение основных геометрических фигур

Создание слайд-шоу

Хотя мидлет Olympics очень интересен и полезен для знакомства с программированием графики мидлета, вы, вероятно, хотите большего. Например, увидеть, как выводится текст и графика в контексте мидлета. В этой части книги вы разработаете слайд-шоу, что поможет вам попрактиковаться в выводе изображений и текста. Очевидно, слайд-шоу – не игра, однако этот мидлет поможет вам изучить основные приемы создания графики игр, например, комбинирование изображений и текста, а также обработку пользовательского ввода.

Написание программного кода

Мидлет Slideshow загружает несколько изображений и текст, после чего выводится на экран. Пользователь может пролистывать страницы слайд-шоу, используя клавиши со стрелками. Поскольку слайд-шоу относится к графической части мидлета, большая часть кода сосредоточена в классе SSCanvas, который хранит изображения и подписи под ними:

private Display display;

private Image[] slides;

private String[] captions = { "Love Circle Bowl", "Double Wide Spine",

"Flume Zoom Over-vert", "Kulp De Sac Bowl",

"Louie's Ledge" };

private int curSlide = 0;

Переменная sliders – это массив объектов Image, она инициализируется в конструкторе класса SSCanvas. Ниже приведен код этого конструктора:

public SSCanvas(Display d) {

super();

display = d;

// загрузить изображения слайд-шоу

try {

slides = new Image[5];

slides[0] = Image.createImage("/LoveCircle.jpg");

slides[1] = Image.createImage("/DoubleWide.jpg");

slides[2] = Image.createImage("/FlumeZoom.jpg");

slides[3] = Image.createImage("/KulpDeSac.jpg");

slides[4] = Image.createImage("/LouiesLedge.jpg");

}

catch (IOException e) {

System.err.println("Failed loading images!");

}

}

Этот код понять очень просто, он создает массив объектов Image и инициализирует каждый элемент, загружая с помощью метода Image.createImage() соответствующее изображение. Важно отметить, что имя каждого файла изображения начинается с символа / (Косой слеш), обозначающего, что файл расположен в корневой директории мидлета. Это важно, так как эти изображения упакованы в JAR-архив вместе с классом мидлета, а следовательно, они должны быть доступны для чтения.

В копилку Игрока

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

Основные действия выполняются в методе paint() класса SSCanvas, который выводит текущее изображение слайд-шоу и подпись на экран. Ниже приведен код метода paint():

public void paint(Graphics g) {

// очистить экран

g.setColor(255, 255, 255); // белый

g.fillRect(0, 0, getWidth(), getHeight());

// вывести текущее изображение

g.drawImage(slides[curSlide], getWidth() / 2, getHeight() / 2, //Текущее изображение выводится в центре экрана
<< 1 ... 13 14 15 16 17 18 19 20 21 ... 23 >>
На страницу:
17 из 23