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

Столкновение объектов

// инициализируем менеджер уровней
lm = new LayerManager();
// добавляем мяч к уровню
lm.append(bol);
// добавляем бомбы к уровню
lm.append(bombal);
lm.append(bomba2);
lm.append(ЬотЬаЗ);
lm.append(bomba4); }
// обрабатываем столкновение
public void stolknovenie()
{
// столкновение с первой бомбой
if (bol .collidesWith (bombal, true))
{
bol.nextFrame();
bombal.nextFrame(); }
// столкновение со второй бомбой
if(bol.collidesWith(bomba2, true))
{
bol.prevFrame(); bomba2.prevFrame();
}
// столкновение с третьей бомбой
if (bol.collidesWith(bоmbа3, true))
{
bol.setFrame (2);
vbomba3.setFrame(0);
}
// столкновение с четвертой бомбой
if(bol.collidesWith(bomba4, true))
{
int[] i = {2.3};
bol.setFrame(0);
bomba4 .setFrameSequence (i);
}
}
public void start()
{
z = true;
// создаем и запускаем поток
Thread t = new Thread(this);
t.start();
}
// останавливаем поток
public void stop()
{ z = false; }
public void run()
{
// получаем графический контекст
Graphics g = getGraphics(); while (z)
{
// столкновение с препятствием
stolknovenie ();
// обрабатываем события с клавиш телефона
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(0xffff00);
// перерисовываем экран
g.fillRect(0, 0, getWidth(), 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
// констоуктор
oublic MySprite(Image image, int fw, int fh)
// обращаемся к конструктору суперкласса
super(image, fw, fh);
}
// <strong>метод</strong> для левой нажатой клавиши
public void moveLeft()
//передвигаем спрайт
move(-1.0);
// <strong>метод</strong> для правой нажатой клавиши
publiс void moveRight()
//передвигаем спрайт
move(1.0);
}
// метод для клавиши вверх
public void rnoveUp ()
// передвигаем спрайт
// ме<strong>т</strong>од для клавиши вниз
public void moveDown()
//передвигаем спрайт
move(0.1);
}
}
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.