1  /* Ball class */
  2  
  3  import java.awt.*;
  4  import java.applet.*;
  5  
  6  class Ball {
  7  
  8    int initx, inity, level, current, x, y, latency;
  9    int dx, dy;
 10    Image image;
 11    Color bgcolor;
 12    String name;
 13    boolean moving = false;
 14  
 15    Applet applet;
 16  
 17    public Ball (String _name, Image i, Applet _applet, Color _color) {
 18      image = i;
 19      bgcolor = _color;
 20      applet = _applet;
 21      setPos(0, 0);
 22      setdelta(10, 10);
 23      name = _name;
 24      current = 0;
 25    }
 26    
 27    public void setPos(int _x, int _y) {
 28      x = _x; y = _y;
 29    }
 30  
 31    public void setdelta(int _dx, int _dy) {
 32      dx = _dx; dy = _dy;
 33    }
 34  
 35    public void setVars(int x, int y, int lvl, int late) {
 36      initx = x - 2;
 37      inity = y - 14;
 38      setPos(initx, inity);
 39      level = lvl;
 40      moving = true;
 41      latency = late;
 42    }
 43  
 44    public void paint(Graphics g) {
 45      g.drawImage(image, x, y, applet);
 46    }
 47    
 48    public void hide(Graphics g) {
 49      g.setColor(bgcolor);
 50      g.fillRect(x, y, image.getWidth(applet), image.getHeight(applet) - 2);
 51    }
 52  
 53    public void move(Graphics g) {
 54      if (latency > 0) {
 55        latency--;
 56        return;
 57      }
 58      if (moving) {
 59        hide(g);
 60        y += dy;
 61        if (Math.random() < 0.5) x -= dx; else x += dx;
 62        current++;
 63        if (current > level) { 
 64          x = initx; y = inity; 
 65          current=0;
 66        }
 67        setPos(x, y);
 68        paint(g);
 69      }
 70    }
 71    
 72  }
 73