- import java.applet.*;
- import java.awt.*;
- import java.awt.event.*;
- import java.util.*;
- public class Main extends Applet implements Runnable {
- private static final long serialVersionUID = 5138339314543152159L;
- private ArrayList<Ball> ballList = new ArrayList<Ball>();
- int appletsize_x = 380;
- int appletsize_y = 380;
- private Image dbImage;
- private Graphics dbg;
- private Image backgroundImage = null;
- private AudioClip bounceSound;
- private void addBalls(int i) {
- if(i>0) {
- for(int i2=0;i2<i;i2++) {
- ballList.add(new Ball(appletsize_x, appletsize_y, bounceSound));
- }
- } else {
- System.out.println("Bad argument: " + i + "\n\"i\" must be a positive int");
- }
- }
- public void init() {
- this.addKeyListener(new KeyListener() {
- @Override
- public void keyPressed(KeyEvent e) {
- }
- @Override
- public void keyReleased(KeyEvent e) {
- }
- @Override
- public void keyTyped(KeyEvent e) {
- }
- });
- this.addMouseListener(new MouseListener() {
- @Override
- public void mouseClicked(MouseEvent arg0) {
- // TODO Auto-generated method stub
- }
- @Override
- public void mouseEntered(MouseEvent arg0) {
- // TODO Auto-generated method stub
- }
- @Override
- public void mouseExited(MouseEvent arg0) {
- // TODO Auto-generated method stub
- }
- @Override
- public void mousePressed(MouseEvent arg0) {
- // TODO Auto-generated method stub
- }
- @Override
- public void mouseReleased(MouseEvent arg0) {
- // TODO Auto-generated method stub
- }
- });
- this.addMouseMotionListener(new MouseMotionListener() {
- @Override
- public void mouseDragged(MouseEvent arg0) {
- // TODO Auto-generated method stub
- }
- @Override
- public void mouseMoved(MouseEvent arg0) {
- // TODO Auto-generated method stub
- }
- });
- backgroundImage = getImage(getCodeBase(), "image/land.gif");
- bounceSound = getAudioClip(getCodeBase(), "sound/bounce.au");
- addBalls(3);
- }
- public void start () {
- Thread th = new Thread(this);
- th.start ();
- Thread gravity = new Thread() {
- public void run() {
- while(true) {
- try {
- Thread.sleep(20);
- } catch(InterruptedException ex) {}
- }
- }
- };
- gravity.start();
- }
- public void stop() {
- }
- public void destroy() {
- }
- public void run ()
- {
- Thread.currentThread().setPriority(Thread.MIN_PRIORITY);
- while (true) {
- for(int i=0;i<(ballList.size());i++) {
- ballList.get(i).move();
- }
- repaint();
- try {
- Thread.sleep (20);
- } catch (InterruptedException ex) {}
- Thread.currentThread().setPriority(Thread.MAX_PRIORITY);
- }
- }
- public void update (Graphics g) {
- if (dbImage == null) {
- dbImage = createImage (this.getSize().width, this.getSize().height);
- dbg = dbImage.getGraphics ();
- }
- dbg.setColor (getBackground ());
- dbg.fillRect (0, 0, this.getSize().width, this.getSize().height);
- dbg.setColor (getForeground());
- paint (dbg);
- g.drawImage (dbImage, 0, 0, this);
- }
- public void paint (Graphics g)
- {
- System.out.println(backgroundImage);
- g.drawImage (backgroundImage, 0, 0, this);
- System.out.println(backgroundImage);
- for(int i=0;i<(ballList.size());i++) {
- ballList.get(i).draw(g);
- }
- }
- }