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

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

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

public class OCanvas extends Canvas {

private Display display;

public OCanvas(Display d) {

super();

display = d;

}

void start() {

display.setCurrent(this);

repaint();

}

public void paint(Graphics g) {

// Clear the display

g.setColor(255, 255, 255); // White

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

// Draw the first row of circles //Дуги выводятся как идеальные окружности, если задать одинаковые значения высоты и ширины, а также изменение угла от 0° до 360°

g.setColor(0, 0, 255); // Blue

g.drawArc(5, 5, 25, 25, 0, 360);

g.setColor(0, 0, 0); // Black

g.drawArc(35, 5, 25, 25, 0, 360);

g.setColor(255, 0, 0); // Red

g.drawArc(65, 5, 25, 25, 0, 360);

// Draw the second row of circles

g.setColor(255, 255, 0); // Yellow

g.drawArc(20, 20, 25, 25, 0, 360);

g.setColor(0, 255, 0); // Green

g.drawArc(50, 20, 25, 25, 0, 360);

}

}

Этот класс расширяет класс Canvas и устанавливает себя как экран мидлета. Конструктор вызывает конструктор родительского класса Canvas и инициализирует переменную display. Метод start() устанавливает холст текущим экраном мидлета и обновляет изображение. Наиболее важный код содержится в методе paint(), он вызывает функции setColor() и drawArc() и рисует олимпийский символ. Обратите внимание, что все аргументы углов в функциях drawArc() равны 0

и 360°, в результате чего будут нарисованы полные эллипсы.

Когда вы определили класс OCanvas, можно объявить член-переменную класса мидлета OlympicsMIDlet:

private OCanvas canvas;

Член-переменная класса должна быть инициализирована конструктором класса:

canvas = new Ocanvas (Display.getDisplay(this));

Это весь код для обработки графики, который необходим в мидлете Olympics. В листинге 4.2 представлен полный код класса OlympicsMIDlet.

Листинг 4.2. Код класса OlympicsMIDlet содержится в файле OlympicsMIDlet.java

import javax.microedition.midlet.*;

import javax.microedition.lcdui.*;

public class OlympicsMIDlet extends MIDlet implements CommandListener {

private OCanvas canvas;

public void startApp() {

if (canvas == null) {

canvas = new OCanvas(Display.getDisplay(this));

Command exitCommand = new Command("Exit", Command.EXIT, 0);

canvas.addCommand(exitCommand);

canvas.setCommandListener(this);

}

// инициализация

canvas.start(); //Метод start() холста запускает мидлет

}
<< 1 ... 12 13 14 15 16 17 18 19 20 ... 23 >>
На страницу:
16 из 23