Objektorientierte Programmierung WS 2013/2014 - Datei MultiBallWorld.java
import java.awt.*;
import java.awt.event.*;
public class MultiBallWorld extends Frame {
public static void main(String[] args) {
MultiBallWorld world = new MultiBallWorld();
world.setVisible(true);
}
private static final int FrameWidth = 300;
private static final int FrameHeight = 200;
private static int ballnumber = 5;
private MovableBall balls[];
private MultiBallWorld() {
setSize(FrameWidth, FrameHeight);
setTitle("Multi Ball World");
WindowListener wl = new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
};
addWindowListener(wl);
// generate balls
balls = new MovableBall[ballnumber];
for (int i = 0; i < ballnumber; i++) {
balls[i] = new BoundedBall(
(int) (Math.random() * FrameWidth),
(int) (Math.random() * FrameHeight), 10,
0, FrameWidth, 0, FrameHeight);
balls[i].setColor(
new Color((float) Math.random(), (float) Math.random(),
(float) Math.random()));
balls[i].setMotion(3.0, 6.0);
}
}
public void paint(Graphics g) {
for (int i = 0; i < ballnumber; i++) {
balls[i].paint(g);
balls[i].move();
}
// check for collisions
for (int i = 0; i < ballnumber; i++) {
for (int j = i + 1; j < ballnumber; j++) {
if (balls[i].region().intersects(balls[j].region())) {
balls[i].setMotion(-balls[i].xMotion(), -balls[i].yMotion());
balls[j].setMotion(-balls[j].xMotion(), -balls[j].yMotion());
}
}
}
repaint();
try {
Thread.currentThread().sleep(154);
} catch (InterruptedException e) {}
}
}
Generiert mit Camelot | Probleme mit Camelot? | Geändert am: 05.11.2013


