Анимация
Есть несколько способов создать анимацию. Самый простой из них – записать заранее все необходимые кадры в графические файлы, загрузить их в оперативную память В виде Объектов класса Image или Bufferedlmage и выводить по очереди на экран.
Это сделано в листинге 15.9. Заготовлено десять кадров в файлах run1.gif, run2.gif,. .run10.gif. Они загружаются в массив img[] и выводятся на экран циклически 100 раз, с задержкой в 0.1 сек.
Листинг 15.9. Простая анимация.
import java.awt.*;
import java.awt.event.*;
class SimpleAnim extends Frame {
private Image[] img = new Image[10];
private int count;
SimpleAnim(String s) {
super(s);
MediaTracker tr = new MediaTracker(this);
for (int k = 0; k < 10; k++) {
img[k] = getToolkit().getlmage("run" + (k + 1) + ".gif");
tr.addlmage(img[k], 0);)
try {
tr.waitForAll(); // Ждем загрузки всех изображений
} catch (InterruptedException e) {}
setSize(400, 300);
setVisible(true);
}
public void paint(Graphics g) {
g.drawImage(img[count % 10], 0, 0, this);
}
// public void update(Graphics g){ paint(g); }
public void go() {
while (count < 100) {
repaint(); // Выводим следующий кадр
try { // Задержка в 0.1 сек
Thread.sleep(100);
} catch (InterruptedException e) {}
count++;
}
}
public static void main(String[] args) {
SimpleAnim f = new SimpleAnim(" Простая анимация");
f.go();
f.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent ev) {
System.exit(0);
}
}
}
}
}
