Universität Paderborn - Home Universität Paderborn
Die Universität der Informationsgesellschaft

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