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

Обработка событий с клавиш телефона

// загружаем изображение
Image im = Image.createlmage("/bol.png");
// инициализируем объект bol
bol = new MySprite (itn, 23, 23);
// выбираем позицию в центре экрана
bol.setPosition(getWidth()/2, getHeight()/2);
// инициализируем менеджер уровней
1m = new LayerManager();
// добавляем объект bol к уровню
lm.append(bol); }
public void start()
{
z = true;
// создаем и запускаем поток
Thread t = new Thread(this);
t.start();
}
// останавливаем поток
public void stop()
{ z = false;
}
public void run()
{
// получаем графический контекст
Graphic's g = getGraphics ();
while (z)
{
// обрабатываем события с клавиш телефона
inputKey();
// рисуем графические элементы init(g);
// останавливаем цикл на 20 миллисекунд
try { Thread.sleep(20);
}
catch (Java.lang.InterruptedException zxz) {};
}
}
private void inputKey()
{
// определяем нажатую клавишу
int keyStates = getKeyStates();
// код обработки для левой нажатой клавиши
-if ((keyStates & LEFT_PRESSED)!= 0) bol.moveLeft();
// код обработки для правой нажатой клавиши
if ((keyStates & RIGHT_PRESSED)!= 0) bol.moveRight();
// код обработки для клавиши вверх
if ((keyStates & UP_PRESSED)!= 0) bol.moveUp();
// код обработки для клавиши вниз
if ((keyStates & DOWN_PRESSED)!= 0) bol.moveDown();
}
private void init(Graphics g)
{
// белый цвет фона g.setColor(0xffffff);
// перерисовываем экран
g.fillRect (0, 0, getWi.dth (), getHeight());
// рисем уровень в точке 0.0
lm.paint(g, 0, 0);
// двойная буферезация
flushGraphics();
};
}
/**
файл MySprite.Java
класс MySprite
*/
import javax.microedition.Icdui.*;
import javax.microedition.Icdui.game.*;
public class MySprite extends Sprite
{
// конструктор
public MySprite(Image image, int fw, int fh)
{
// обращаемся к конструктору суперкласса
super (image, fw, fh);
}
// метод для клавиши Left public void moveLeft();
{
// передвигаем спрайт
move(-1.0);
}
// метод для клавиши Right public void moveRight()
{
/ / передвигаем спрайт
move(1.0);
}
// метод для клавиши Up public void moveUp()
{
// передвигаем спрайт
move(0,-1);
}
// метод для клавиши Down public void moveDown()
{
// передвигаем спрайт
move(0.1);
'}
}
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.