Иллюстрированный самоучитель по программированию мобильных телефонов

Создание фонового изображения

С помощью класса 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();
}
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.