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