topical media & game development

talk show tell print

graphic-processing-learning-10-example-10-9-Drop.pde / pde



  // Learning Processing
  // Daniel Shiffman
  // http://www.learningprocessing.com
  
  // Example 10-7: Drops one at a time
  
  class Drop {
  
    float x,y;   // Variables for location of raindrop
    float speed; // Speed of raindrop
    color c;
    float r;     // Radius of raindrop
  
    Drop() {
      r = 8;                 // All raindrops are the same size
      x = random(width);     // Start with a random x location
      y = -r*4;              // Start a little above the window
      speed = random(1,5);   // Pick a random speed
      c = color(50,100,150); // Color
    }
  
    // Move the raindrop down
    void move() {
      // Increment by speed
      y += speed; 
    }
  
    // Check if it hits the bottom
    boolean reachedBottom() {
      // If we go a little beyond the bottom
      if (y > height + r*4) { 
        return true;
      } else {
        return false;
      }
    }
  
    // Display the raindrop
    void display() {
      // Display the drop
      fill(c);
      noStroke();
      for (int i = 2; i < r; i++ ) {
        ellipse(x,y + i*4,i*2,i*2);
      }
    }
  
    // If the drop is caught
    void caught() {
      // Stop it from moving by setting speed equal to zero
      speed = 0; 
      // Set the location to somewhere way off-screen
      y = - 1000;
    }
  }
  


(C) Æliens 20/2/2008

You may not copy or print any of this material without explicit permission of the author or the publisher. In case of other copyright issues, contact the author.