/* built with Studio Sketchpad:
* https://sketchpad.cc
*
* observe the evolution of this sketch:
* https://studio.sketchpad.cc/sp/pad/view/ro.VvJDa5qdHfn/rev.491
*
* authors:
* Jacob Moore
* Thorn
*
* license (unless otherwise specified):
* creative commons attribution-share alike 3.0 license.
* https://creativecommons.org/licenses/by-sa/3.0/
*/
void setup()
{
size(600, 600);
smooth();
noStroke();
}
void draw()
{
background(0, 0, 0);
frameRate(5);
fill(0, 205, 50);
triangle(50, 500, 350, 500, 200, 100);
fill(255,255,255); //background snow
rect(0,(550-frameCount/5), width, (50+frameCount/5));
fill(137, 100, 90); //stump
rect(175, 500, 50, 60);
fill(255, 255, 255); //snow in front of stump
rect(0,(560-frameCount/5),width,(frameCount/5));
//base shape
stroke(255);
fill(255,255,255);
ellipse(450, 350, 80, 80);
ellipse(450, 430, 100, 100);
ellipse(450, 510, 130, 130);
//pipe
stroke(131,62,29);
fill(131, 62,29);
rect(463,360,10,10);
line(450,360,470,367);
//hat
stroke(242,20,0);
fill(242,20,0);
line(490, 315, 410, 315);
strokeWeight(1);
fill(242,20,0);
rect(420, 275, 60, 40);
//eyes
stroke(0);
strokeWeight(7);
point(435, 335);
point(465, 335);
//nose
stroke(355, 124, 0);
fill(355, 124, 0);
triangle(428, 353, 448, 340, 449, 350);
//buttons
strokeWeight(15);
stroke(3, 3, 3);
point(450, 400);
point(450, 420);
point(450, 440);
strokeWeight(1);
// Star
fill(255, 236, 23);
triangle(200, 150, 175, 100, 225, 100);
triangle(175, 125, 225, 125, 200, 75);
// Lights
fill(random(200, 255), random(255), random(255));
ellipse(random(100, 300), random(440, 460), 10, 10);
fill(random(0, 255), random(200, 255), random(255));
ellipse(random(105, 295), random(415, 435), 10, 10);
fill(random(0, 255), random(255), random(200, 255));
ellipse(random(110, 290), random(390, 410), 10, 10);
fill(random(200, 255), random(255), random(255));
ellipse(random(115, 285), random(365, 385), 10, 10);
fill(random(200, 255), random(200, 255), random(255));
ellipse(random(120, 280), random(340, 360), 10, 10);
fill(random(200, 255), random(255), random(200, 255));
ellipse(random(130, 270), random(315, 335), 10, 10);
fill(random(200, 255), random(255), random(255));
ellipse(random(140, 260), random(290, 310), 10, 10);
fill(random(0, 255), random(200, 255), random(255));
ellipse(random(145, 255), random(265, 285), 10, 10);
fill(random(0, 255), random(255), random(200, 255));
ellipse(random(160, 240), random(240, 260), 10, 10);
fill(random(200, 255), random(255), random(255));
ellipse(random(175, 225), random(215, 235), 10, 10);
fill(random(0, 255), random(255), random(200, 255));
ellipse(random(180, 220), random(175, 200), 10, 10);
fill(random(0, 255), random(255), random(200, 255));
ellipse(random(190, 210), random(150, 160), 10, 10);
// Snow
stroke(400, 400, 400);
strokeWeight(3);
for (int i = 0; i < 10; i = i+1)
{
for (int j=0; j<10; j=j+1)
{
point(random(i*60, (i+1)*60), random(height));
}
}
noStroke();
}