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

В этом методе экран сначала очищается и заполняется черным цветом, а затем вызывается метод paint, который и рисует спрайт. В завершении созданная графика выводится на экран, для чего вызывается метод flushGraphics. В этом и состоит вся прелесть двухбуферной анимации: вы создаете графику, а затем выводите ее на экран. Без этого игры были бы не столь привлекательными, поверьте.

Теперь, чтобы объединить все вышесказанное, посмотрите листинг 5.1.

Листинг 5.1. Класс UFOCanvas – это класс холста мидлета UFO

import javax.microedition.lcdui.*;

import javax.microedition.lcdui.game.*;

import java.util.*;

import java.io.*;

public class UFOCanvas extends GameCanvas implements Runnable {

private Display display;

private boolean sleeping;

private long frameDelay;

private Random rand;

private Sprite ufoSprite;

private int ufoXSpeed, ufoYSpeed;

public UFOCanvas(Display d) {

super(true);

display = d;

// установить частоту кадров 30 кадров/с

frameDelay = 33;

}

public void start {

// установить холст как текущий экран

display.setCurrent(this);

// инициализация генератора случайных чисел

rand = new Random;

// инициализация спрайта НЛО

ufoXSpeed = ufoYSpeed = 3;

try {

ufoSprite = new Sprite(Image.createImage("/Saucer.png"));

ufoSprite.setPosition(0, 0); //НЛО стартует в верхнем левом углу экрана

}

catch (IOException e) {

System.err.println("Failed loading image!");

}

// запуск потока анимации

sleeping = false;

Thread t = new Thread(this);

t.start;

}

public void stop {

// Stop the animation

sleeping = true;

}

public void run {

Graphics g = getGraphics;

// The main game loop

while (!sleeping) {

update;

draw(g);

try {

Thread.sleep(frameDelay);

}

catch (InterruptedException ie) {}

}

}

private void update {

// Randomly alter the UFO\'s speed

if (rand.nextInt % 5 == 0) { //Изменить случайным образом компоненты скорости по осям Х и Y в интервале от -8 до 8

ufoXSpeed = Math.min(Math.max(ufoXSpeed + rand.nextInt % 2, -8), 8);

ufoYSpeed = Math.min(Math.max(ufoYSpeed + rand.nextInt % 2, -8), 8);

}

// Move the sprite

ufoSprite.move(ufoXSpeed, ufoYSpeed);

// Wrap the UFO around the screen if necessary

if (ufoSprite.getX < -ufoSprite.getWidth)

ufoSprite.setPosition(getWidth, ufoSprite.getY);

else if (ufoSprite.getX > getWidth)

ufoSprite.setPosition(-ufoSprite.getWidth, ufoSprite.getY);

if (ufoSprite.getY < -ufoSprite.getHeight)

ufoSprite.setPosition(ufoSprite.getX, getHeight);

else if (ufoSprite.getY > getHeight)

ufoSprite.setPosition(ufoSprite.getX, -ufoSprite.getHeight);

}

private void draw(Graphics g) {

// Clear the display

g.setColor(0x000000);

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

// Draw the UFO sprite //Спрайт очень просто вывести на экран, используя метод paint

ufoSprite.paint(g);

// Flush the offscreen graphics buffer

flushGraphics;

}

}

Перейти на страницу:

Похожие книги

С компьютером на ты. Самое необходимое
С компьютером на ты. Самое необходимое

Рассказывается о работе в операционной системе Windows (на примере версий XP и 7), текстовом редакторе Word 2010 и других приложениях, необходимых каждому пользователю: архиваторах, антивирусах и программах для просмотра видео и прослушивания музыки (Winamp, QuickTime Pro). Большое внимание уделяется работе в Интернете. Рассказывается о программах для просмотра Web-страниц, об электронной почте, а также о различных полезных приложениях для работы в сети — менеджерах закачек файлов, ICQ, Windows Live Messenger, MSN и многих других. Во втором издании рассмотрена новая ОС — Windows 7, а также последние версии приложений для пользователей.Для начинающих пользователей ПК.

Андрей Александрович Егоров , Андрей Егоров

Зарубежная компьютерная, околокомпьютерная литература / Прочая компьютерная литература / Книги по IT
От «кирпича» до смартфона
От «кирпича» до смартфона

Перед вами уникальное исследование мира мобильной индустрии, превращенное его автором Эльдаром Муртазиным, ведущим аналитиком Mobile Research Group и главным российским специалистом по мобильным телефонам, в захватывающий бизнес-триллер. Гигантские компании — Nokia, Motorola, Samsung бросают на мобильный фронт колоссальные силы, создают альянсы, охотятся за лучшими специалистами, шпионят друг за другом. Разработки ведутся в обстановке строжайшей секретности. Цель — выпустить на рынок новую, уникальную модель раньше конкурентов или даже полностью изменить наше представление о мобильном телефоне, как это недавно удалось Apple со своим iPhone.Эта книга предназначена для тех, кто видит в мобильном телефоне не просто средство связи, а чудо инженерной мысли, смелое воплощение дизайнерских фантазий, символ нашей эпохи.

Эльдар Викторович Муртазин , Эльдар Муртазин

Справочная литература / Прочая компьютерная литература / Прочая справочная литература / Книги по IT / Словари и Энциклопедии