xxxxxxxxxx
var a = 0;
var s = 0.25; // size
var sincr = 0.05; // size increment each frame
function setup() {
createCanvas(windowWidth, windowHeight);
frameRate(5);
}
function draw() {
background(255);
fill(200, 200, 200);
rectMode(CENTER);
for(let i = 0;i < 10; i = i+1)
{
fill(random(255), random(255), random(255));
frosty(mouseX + random(-200, 200), mouseY + random(-200, 200), random(0.2, 1));
}
frosty(mouseX, mouseY, 1);
a = a+0.1;
s = s+sincr;
if(s>1) sincr = -sincr; // reverse it
if(s<0.05) sincr = -sincr; // reverse it
}
function frosty(x, y, s)
{
push();
translate(x, y);
scale(s); // change size
// body:
ellipse(0, -75, 50, 50);
ellipse(0, 0, 100, 100);
ellipse(0, 125, 150, 150);
push();
translate(0, 200);
beginShape();
// some stuff
vertex(0, 0);
vertex(50, 50);
vertex(-50, 50);
endShape(CLOSE);
pop();
// snowball:
push(); // move up one level IN THE DRAWING STACK
rotate(a);
translate(50, 50);
ellipse(0, 0, 20, 20);
pop(); // move down one level IN THE DRAWING STACK
// hat
push();
translate(0, -115);
scale(s);
rect(0, 0, 30, 30);
rect(0, -30, 15, 15);
pop();
pop();
}