void setup() { size(400, 400); } void draw() { noStroke(); background(127, 192, 216); fill(137, 227, 78); ellipse(200, 400, 600, 300); rectMode(CENTER); //shadow noStroke(); fill(55, 55, 55, 90); ellipse(200, 290, 50+sin(millis()/100) *2, 10); //hair noStroke(); fill(152, 119, 66); ellipse(200, 220+sin(millis()/100) *2, 60+sin(millis()/100), 100); //face and neck fill(245, 220, 220); ellipse(200, 200+sin(millis()/100) *2, 40, 40); rect(200, 230, 10, 40); //pants fill(180, 171, 140); rect(200, 267+sin(millis()/100)*2, 30, 20, 5); triangle(185, 260+sin(millis()/100)*2, 215, 260+sin(millis()/100)*2, 200, 280+sin(millis()/100)*2); //shirt fill(183, 245, 194); rect(200, 243+sin(millis()/100) *2, 30, 40, 5); //eyes fill(53, 105, 129); ellipse(190, 195+sin(millis()/100) *2, 7, 10); ellipse(210, 195+sin(millis()/100) *2, 7, 10); //darkness fill(0, 0, 0, mouseY/2); rect(200, 200, 400, 400); //stars fill(249, 252, 156, mouseY*.75); noStroke(); ellipse(60.5, 10.5, 4, 4); ellipse(128, 15, 4, 4); ellipse(266, 10, 4, 4); ellipse(10, 17, 4, 4); ellipse(213, 9, 4, 4); ellipse(289, 7, 4, 4); ellipse(375, 12, 4, 4); ellipse(392, 10, 4, 4); ellipse(44, 4, 4, 4); ellipse(64, 7, 4, 4); ellipse(350, 10, 4, 4); ellipse(246, 18, 4, 4); ellipse(145, 26, 4, 4); ellipse(100, 21, 4, 4); ellipse(240, 12, 4, 4); ellipse(197, 21, 4, 4); ellipse(164, 5, 4, 4); ellipse(20, 20, 4, 4); ellipse(362, 15, 4, 4); ellipse(330, 31, 4, 4); //fireflies (bottom rows) fill(249, 252, 156, mouseY*2); ellipse(50, 370, 5+sin(millis()/100)*2, 5+sin(millis()/100)*2); ellipse(100, 340, 5+sin(millis()/100)*2, 5+sin(millis()/100)*2); ellipse(150, 370, 5+sin(millis()/100)*2, 5+sin(millis()/100)*2); ellipse(200, 340, 5+sin(millis()/100)*2, 5+sin(millis()/100)*2); ellipse(250, 370, 5+sin(millis()/100)*2, 5+sin(millis()/100)*2); ellipse(300, 340, 5+sin(millis()/100)*2, 5+sin(millis()/100)*2); ellipse(350, 370, 5+sin(millis()/100)*2, 5+sin(millis()/100)*2); //(top rows) ellipse(50, 310, 5+sin(millis()/100)*2, 5+sin(millis()/100)*2); ellipse(100, 280, 5+sin(millis()/100)*2, 5+sin(millis()/100)*2); ellipse(150, 310, 5+sin(millis()/100)*2, 5+sin(millis()/100)*2); ellipse(250, 310, 5+sin(millis()/100)*2, 5+sin(millis()/100)*2); ellipse(300, 280, 5+sin(millis()/100)*2, 5+sin(millis()/100)*2); ellipse(350, 310, 5+sin(millis()/100)*2, 5+sin(millis()/100)*2); //firefly halos (bottom rows) fill(249, 252, 156, mouseY*.4); ellipse(50, 370, 15+sin(millis()/100)*2, 15+sin(millis()/100)*2); ellipse(100, 340, 15+sin(millis()/100)*2, 15+sin(millis()/100)*2); ellipse(150, 370, 15+sin(millis()/100)*2, 15+sin(millis()/100)*2); ellipse(200, 340, 15+sin(millis()/100)*2, 15+sin(millis()/100)*2); ellipse(250, 370, 15+sin(millis()/100)*2, 15+sin(millis()/100)*2); ellipse(300, 340, 15+sin(millis()/100)*2, 15+sin(millis()/100)*2); ellipse(350, 370, 15+sin(millis()/100)*2, 15+sin(millis()/100)*2); //(top rows) ellipse(50, 310, 15+sin(millis()/100)*2, 15+sin(millis()/100)*2); ellipse(100, 280, 15+sin(millis()/100)*2, 15+sin(millis()/100)*2); ellipse(150, 310, 15+sin(millis()/100)*2, 15+sin(millis()/100)*2); ellipse(250, 310, 15+sin(millis()/100)*2, 15+sin(millis()/100)*2); ellipse(300, 280, 15+sin(millis()/100)*2, 15+sin(millis()/100)*2); ellipse(350, 310, 15+sin(millis()/100)*2, 15+sin(millis()/100)*2); //moon/sun fill(248, 250, mouseY/3); ellipse(mouseX, mouseY/3, 30, 30); fill(39, 62, 70, mouseY/2.5); ellipse(mouseX+5.1, mouseY/3, 20, 20); }