> show canvas only <


/* built with Studio Sketchpad: 
 *   https://sketchpad.cc
 * 
 * observe the evolution of this sketch: 
 *   https://cst1101.sketchpad.cc/sp/pad/view/ro.dG7qVHYkrQc/rev.31
 * 
 * authors: 
 *   kimyoonshik

 * license (unless otherwise specified): 
 *   creative commons attribution-share alike 3.0 license.
 *   https://creativecommons.org/licenses/by-sa/3.0/ 
 */ 




// HW #8

// Kim Yoonshik




Snow mySnow; // object data type
Snow [] sky; // array called lot of "Car"s

void setup() {
  cursor(CROSS);
  sky = new Snow[400];
  size(400, 500);
  for (int i = 0; i < sky.length; i++) {
    sky[i] = new Snow(color(random(100,255)), i*6, random(0, height), 2, i/20.0);

}
}

void draw() {
    background(0);
  
  fill(255);
  ellipse(mouseX,mouseY,15,15); 
  for (int i = 0; i < sky.length; i++) {
    sky[i].display();
    sky[i].drop();
  }
}

//------------------------- CLASS ----------------------------

class Snow {
  color snowColor; // data
  int snowX;
  float snowY;
  int snowSpeed;
  float snowSize;

  Snow(color snowColor_, int snowX_, float snowY_, int snowSpeed_, float snowSize_) { // constructor
    snowColor = snowColor_;
    snowX = snowX_;
    snowY = snowY_;
    snowSpeed = snowSpeed_;
    snowSize = snowSize_;
  }

  void drop() { // methods
    snowY = snowY + snowSpeed;
    if (snowY > height) {
      snowY = 0;
    }
    
  
  }

  void display() { // methods
    fill(snowColor);
    stroke(255);
    ellipse(snowX, snowY, snowSize, snowSize/1.5);
  }
}