Создание фонового изображения
С помощью класса TiledLayer можно создавать любое количество уровней, накладывая их друг на друга, а с помощью менеджера уровней, представленного классом LayerManager, отслеживать все имеющиеся уровни. В качестве примера будет создан фон на основе элементов разметки игрового поля. Фоновое изображение загружается из файла fon.png. Само изображение выполнено в виде шести ячеек размером 15x15 пикселей.
В листинге 8.1 находится код примера создающего фоновое изображение. Ознакомьтесь с листингом, а потом мы перейдем к анализу этого примера.
Листинг 8.1. Класс MainGame.
import javax.microedition.lcdui.*; import javax.microedition.midlet.*; public class MainGame extends MIDlet implements CommandListener { //команда выхода private Command exitMidlet = new Command!"Выход", Command.EXIT, 0); // объект класса MyGameCanvas private MyGameCanvas mr; public void startApp.{ <strong>}</strong> { // обрабатываем исключительную ситуацию try{ // инициализируем объект класса MyGameCanvas <strong>;</strong> mr = new MyGameCanvas(); // запускаем поток mr.start(); // добавляем команду выхода mr.addCommand(exitMidlet); mr.setCommandListener(this); // отражаем текущий дисплей Display.getDisplay (this) .setCurrent (mr-); } catch (Java .io. ID-Exception zxz) {}; } public void pauseApp() {} public void destroyApp(boolean unconditional) { // останавливаем поток if(mr!= null) mr.stop'O; } public void coramandAction(Command c, Displayable d) { if (c == exitMidlet) { destroyApp(false); notifyDestroyed(); } } } <strong>/</strong> * * Файл MyGameCanvas.Java класс MyGameCanvas * <strong>/</strong> import Java.io. <strong>IO</strong> Exception; import javax.microedition.Icdui.*; import javax.microedition Nlcdui.game.*; public class MyGameCanvas extends GameCanvas implements Runnable- { // создаем объект класса TiledLayer private TiledLayer fonPole; // создаем объект класса LayerManager private LayerManager <strong>i</strong> m; // логическая переменная для выхода из цикла boolean z; public MyGameCanvas(), throws <strong>IO</strong> Exception { // обращаемся к конструктору суперкласса NCanvas super(true); // инициализируем fonPole fonPole = Fon () <strong>;</strong> // создаем менеджер уровней 1m = new LayerManager(); // добавляем объект fonPole к уровню im.append (fonPole); } public void start() { z = true; // создаем и запускаем поток Thread t = new Thread(this); t.start(); }