/* built with Studio Sketchpad:
* https://sketchpad.cc
*
* observe the evolution of this sketch:
* https://studio.sketchpad.cc/sp/pad/view/ro.Qd2wFxBbbhz/rev.1280
*
* authors:
* Claudio Pinho
* Ari Bader-Natal
* Jonathan Brodsky
* Joel Drake
*
* Gregg Blanchard
* Steve Mickelson
*
*
*
* Ed Parker
* Mirco Becker
*
* Andrzej Koper
*
* license (unless otherwise specified):
* creative commons attribution-share alike 3.0 license.
* https://creativecommons.org/licenses/by-sa/3.0/
*/
int[] xpos = new int[50];
int[] sizer = new int[50];
int[] speeder = new int[50];
int[] ypos = new int[50];
int[] drifter = new int[50];
var dropStart = random(500);
var flakeSize = random(1,7);
var reffer = 0;
var counter = 0;
var backgroundimage;
var flakecount = 500;
void setup() {
size(552, 360);
stroke(200, 200, 200);
frameRate(30);
backgroundimage = loadImage("http://www.greggblanchard.com/images/nightmtn.jpg");
}
void draw() {
image(backgroundimage,0,0);
reffer++;
if (reffer % 3 == 0 && counter < flakecount) {
counter++;
xpos[counter] = random(552);
sizer[counter] = random(2,6);
ypos[counter] = -8;
speeder[counter] = random(1,2);
drifter[counter] = 0;
}
for (int i = 0; i < counter; i++) {
ypos[i] += speeder[i];
if (ypos[i] > 368) {
ypos[i] = 0;
}
if (ypos[i] % 10 > 0 && ypos[i] % 10 < .2) {
drifter[i] = random(-.3,.3);
}
xpos[i] += drifter[i];
ellipse(xpos[i],ypos[i],sizer[i],sizer[i]);
}
if (reffer > 368) {
reffer = 0;
dropStart = random(552);
flakeSize = random(4,8);
}
}