home *** CD-ROM | disk | FTP | other *** search
/ PC Plus SuperCD (UK) 2000 March / pcp161b.iso / handson / archive / Issue153 / java / Rain.class (.txt) < prev    next >
Encoding:
Java Class File  |  1999-04-04  |  2.4 KB  |  92 lines

  1. import java.applet.Applet;
  2. import java.awt.Color;
  3. import java.awt.Component;
  4. import java.awt.Graphics;
  5. import java.awt.Image;
  6. import java.awt.MediaTracker;
  7.  
  8. public class Rain extends Applet implements Runnable {
  9.    Image origImg;
  10.    Image backImg;
  11.    // $FF: renamed from: w1 int
  12.    int field_0;
  13.    // $FF: renamed from: h1 int
  14.    int field_1;
  15.    Thread thrRain;
  16.    private static final int SMUDGE_WIDTH = 15;
  17.    private static final int SMUDGE_HEIGHT = 15;
  18.  
  19.    public void start() {
  20.       if (this.thrRain == null) {
  21.          this.thrRain = new Thread(this);
  22.          this.thrRain.start();
  23.       }
  24.  
  25.    }
  26.  
  27.    public void stop() {
  28.       if (this.thrRain != null) {
  29.          this.thrRain.stop();
  30.          this.thrRain = null;
  31.       }
  32.  
  33.    }
  34.  
  35.    public void run() {
  36.       this.loadImage();
  37.       this.backImg = ((Component)this).createImage(this.field_0, this.field_1);
  38.       Graphics var1 = this.backImg.getGraphics();
  39.       var1.setColor(Color.white);
  40.       var1.drawImage(this.origImg, 0, 0, this);
  41.       int var2 = (int)(Math.random() * (double)this.field_0);
  42.  
  43.       for(int var3 = 0; this.thrRain != null; ((Component)this).repaint()) {
  44.          this.smudge(var1, var2, var3);
  45.          var2 += (int)(Math.random() * (double)7.0F) - 3;
  46.          var3 += 15;
  47.          if (var3 > this.field_1) {
  48.             var2 = (int)(Math.random() * (double)this.field_0);
  49.             var3 = 0;
  50.          }
  51.  
  52.          try {
  53.             Thread.sleep(50L);
  54.          } catch (InterruptedException var4) {
  55.          }
  56.       }
  57.  
  58.    }
  59.  
  60.    public void loadImage() {
  61.       MediaTracker var1 = new MediaTracker(this);
  62.       String var2 = ((Applet)this).getParameter("image");
  63.       this.origImg = ((Applet)this).getImage(((Applet)this).getDocumentBase(), var2);
  64.       var1.addImage(this.origImg, 0);
  65.  
  66.       try {
  67.          var1.waitForID(0);
  68.       } catch (InterruptedException var3) {
  69.       }
  70.  
  71.       this.field_0 = this.origImg.getWidth(this);
  72.       this.field_1 = this.origImg.getHeight(this);
  73.    }
  74.  
  75.    public void smudge(Graphics var1, int var2, int var3) {
  76.       int var4 = (int)(Math.random() * (double)15.0F / (double)4.0F) - 1;
  77.       int var5 = (int)(Math.random() * (double)15.0F / (double)4.0F) - 1;
  78.       var1.copyArea(var2, var3, 15, 15, var4, var5);
  79.    }
  80.  
  81.    public void update(Graphics var1) {
  82.       this.paint(var1);
  83.    }
  84.  
  85.    public void paint(Graphics var1) {
  86.       if (this.backImg != null) {
  87.          var1.drawImage(this.backImg, 0, 0, this);
  88.       }
  89.  
  90.    }
  91. }
  92.