void setup()
{
size(400, 400);
noStroke();
rectMode(CENTER);
ellipseMode(CENTER);
}
void draw()
{
frameRate(60);
background(255, 137, 50);
//sun reflection
fill(255, 166, 76);
rect(135 + mouseX/ 2, 400 - mouseY/4, 330, 220);
fill(255, 191, 103);
rect(135 + mouseX/ 2, 400 - mouseY/4, 185, 185);
fill(254, 212, 126);
rect(135 + mouseX/ 2, 400 - mouseY/4, 110, 110);
fill(255, 229, 154);
rect(135 + mouseX/ 2, 400 - mouseY/4, 65, 65);
fill(255, 242, 181);
rect(135 + mouseX/ 2, 400 - mouseY/4, 50, 50);
fill(253, 249, 204);
rect(135 + mouseX/ 2, 400 - mouseY/4, 40, 40);
fill(255, 255, 255);
rect(135 + mouseX/ 2, 400 - mouseY/4, 30, 30);
//sun
fill(255, 166, 76);
rect(135 + mouseX / 2, 40 + mouseY/4, 330, 330);
fill(255, 191, 103);
rect(135 + mouseX/ 2, 40 + mouseY/4, 185, 185);
fill(254, 212, 126);
rect(135 + mouseX/ 2, 40 + mouseY/4, 110, 110);
fill(255, 229, 154);
rect(135 + mouseX/ 2, 40 + mouseY/4, 65, 65);
//Sun dim
fill(250,83,23,mouseY/5 - 10);
rect(200,200,400,400);
//sun part 2
fill(255, 242, 181);
rect(135 + mouseX/ 2, 40 + mouseY/4, 50, 50);
fill(253, 249, 204);
rect(135 + mouseX/ 2, 40 + mouseY/4, 40, 40);
fill(255, 255, 255);
rect(135 + mouseX/ 2, 40 + mouseY/4, 30, 30);
//sun glare
fill(255, 80);
rect(150 + mouseX / 2.5, 70 + mouseY/4.2, 20, 20);
rect(165 + mouseX / 3, 90 + mouseY/4.4, 10, 10);
rect(190 + mouseX / 4.55, 150 + mouseY/8, 5, 5);
//mountain reflection
fill(76, 59, 31);
rect(45-mouseX/100, 350, 10, 10);
rect(45-mouseX/100, 340, 30, 10);
rect(45-mouseX/100, 330, 50, 10);
rect(45-mouseX/100, 320, 70, 10);
rect(45-mouseX/100, 310, 90, 10);
fill(50, 44, 10);
rect(45-mouseX/100, 340, 10, 10);
rect(45-mouseX/100, 330, 30, 10);
rect(45-mouseX/100, 320, 50, 10);
rect(45-mouseX/100, 310, 70, 10);
rect(45-mouseX/100, 300, 90, 10);
fill(26, 24, 0);
rect(35-mouseX/100-mouseX/20, 310 - mouseY/100, 10, 10);
rect(35-mouseX/100-mouseX/20, 300 - mouseY/100, 30, 10);
// mountain reflection #2
fill(76, 59, 31);
rect(120-mouseX/100, 350, 10, 10);
rect(120-mouseX/100, 340, 30, 10);
rect(120-mouseX/100, 330, 50, 10);
rect(120-mouseX/100, 320, 70, 10);
fill(50, 44, 10);
rect(120-mouseX/100, 340, 10, 10);
rect(120-mouseX/100, 330, 30, 10);
rect(120-mouseX/100, 320, 50, 10);
rect(120-mouseX/100, 310, 70, 10);
//lake tint
fill(255, 150, 60, 90);
rect(170, 330, 350, 50);
//mountain back layer
fill(76, 59, 31);
rect(45-mouseX/100, 90, 10, 10);
rect(45-mouseX/100, 100, 30, 10);
rect(45-mouseX/100, 110, 50, 10);
rect(45-mouseX/100, 120, 70, 10);
rect(45-mouseX/100, 130, 90, 10);
rect(45-mouseX/100, 140, 110, 10);
rect(45-mouseX/100, 150, 130, 10);
rect(45-mouseX/100, 160, 150, 10);
rect(45-mouseX/100, 170, 170, 10);
rect(45-mouseX/100, 180, 190, 10);
rect(45-mouseX/100, 190, 210, 10);
rect(45-mouseX/100, 200, 230, 10);
rect(45-mouseX/100, 210, 250, 10);
rect(45-mouseX/100, 220, 270, 10);
rect(45-mouseX/100, 230, 290, 10);
rect(45-mouseX/100, 240, 310, 10);
//mountain middle layer
fill(50, 44, 10);
rect(45-mouseX/100, 100, 10, 10);
rect(45-mouseX/100, 110, 30, 10);
rect(45-mouseX/100, 120, 50, 10);
rect(45-mouseX/100, 130, 70, 10);
rect(45-mouseX/100, 140, 90, 10);
rect(45-mouseX/100, 150, 110, 10);
rect(45-mouseX/100, 160, 130, 10);
rect(45-mouseX/100, 170, 150, 10);
rect(45-mouseX/100, 180, 170, 10);
rect(45-mouseX/100, 190, 190, 10);
rect(45-mouseX/100, 200, 210, 10);
rect(45-mouseX/100, 210, 230, 10);
rect(45-mouseX/100, 220, 250, 10);
rect(45-mouseX/100, 230, 270, 10);
rect(45-mouseX/100, 240, 290, 10);
rect(45-mouseX/100, 250, 310, 10);
rect(45-mouseX/100, 260, 330, 10);
//mountain front layer (shadow)
fill(26, 24, 0);
//moving shadow
rect(35-mouseX/100-mouseX/20, 130 - mouseY/100, 10, 10);
rect(35-mouseX/100-mouseX/20, 140 - mouseY/100, 30, 10);
rect(35-mouseX/100-mouseX/20, 150 - mouseY/100, 50, 10);
rect(45-mouseX/100-mouseX/20, 160 - mouseY/100, 70, 10);
rect(45-mouseX/100, 160, 90, 10);
rect(45-mouseX/100, 170, 130, 10);
rect(45-mouseX/100, 180, 150, 10);
rect(45-mouseX/100, 190, 170, 10);
rect(45-mouseX/100, 200, 190, 10);
rect(45-mouseX/100, 210, 210, 10);
rect(45-mouseX/100, 220, 230, 10);
rect(45-mouseX/100, 230, 250, 10);
rect(45-mouseX/100, 240, 270, 10);
rect(45-mouseX/100, 250, 290, 10);
//mountain # 2
fill(76, 59, 31);
rect(120-mouseX/100, 90, 10, 10);
rect(120-mouseX/100, 100, 30, 10);
rect(120-mouseX/100, 110, 50, 10);
rect(120-mouseX/100, 120, 70, 10);
rect(120-mouseX/100, 130, 90, 10);
rect(120-mouseX/100, 140, 110, 10);
rect(120-mouseX/100, 150, 130, 10);
rect(120-mouseX/100, 160, 150, 10);
rect(120-mouseX/100, 170, 170, 10);
rect(120-mouseX/100, 180, 190, 10);
//mountain middle layer
fill(50, 44, 10);
rect(120-mouseX/100, 100, 10, 10);
rect(120-mouseX/100, 110, 30, 10);
rect(120-mouseX/100, 120, 50, 10);
rect(120-mouseX/100, 130, 70, 10);
rect(120-mouseX/100, 140, 90, 10);
rect(120-mouseX/100, 150, 110, 10);
rect(120-mouseX/100, 160, 130, 10);
rect(120-mouseX/100, 170, 150, 10);
rect(120-mouseX/100, 180, 170, 10);
rect(120-mouseX/100, 190, 190, 10);
rect(120-mouseX/100, 200, 210, 10);
rect(120-mouseX/100, 210, 230, 10);
rect(120-mouseX/100, 220, 250, 10);
rect(120-mouseX/100, 230, 270, 10);
rect(120-mouseX/100, 240, 290, 10);
rect(120-mouseX/100, 250, 310, 10);
rect(120-mouseX/100, 260, 330, 10);
//mountain front layer (shadow)
fill(26, 24, 0);
//moving shadow
rect(110-mouseX/100-mouseX/25, 130 - mouseY/100, 10, 10);
rect(110-mouseX/100-mouseX/25, 140 - mouseY/100, 30, 10);
rect(110-mouseX/100-mouseX/30, 150 - mouseY/100, 50, 10);
rect(110-mouseX/100-mouseX/40, 160 - mouseY/100, 70, 10);
rect(120-mouseX/100-mouseX/40, 170 - mouseY/100, 90, 10);
rect(120-mouseX/100, 170, 130, 10);
rect(120-mouseX/100, 180, 150, 10);
rect(120-mouseX/100, 190, 170, 10);
rect(120-mouseX/100, 200, 190, 10);
rect(120-mouseX/100, 210, 210, 10);
rect(120-mouseX/100, 220, 230, 10);
rect(120-mouseX/100, 230, 250, 10);
rect(120-mouseX/100, 240, 270, 10);
rect(120-mouseX/100, 250, 290, 10);
rect(10-mouseX/100, 210, 90, 70);
//mountain #3 middle layer
fill(50, 44, 10);
rect(310-mouseX/100, 170, 10, 10);
rect(310-mouseX/100, 180, 30, 10);
rect(310-mouseX/100, 190, 50, 10);
rect(310-mouseX/100, 200, 70, 10);
rect(310-mouseX/100, 210, 90, 10);
rect(310-mouseX/100, 220, 110, 10);
rect(310-mouseX/100, 230, 130, 10);
rect(310-mouseX/100, 240, 150, 10);
rect(310-mouseX/100, 250, 170, 10);
rect(310-mouseX/100, 260, 190, 10);
rect(310-mouseX/100, 270, 210, 10);
rect(310-mouseX/100, 280, 230, 30);
//mountain # 3 front layer (shadow)
fill(26, 24, 0);
rect(320-mouseX/100-mouseX/25, 210-mouseY/25, 10, 10);
rect(320-mouseX/100-mouseX/25, 220-mouseY/25, 30, 10);
rect(320-mouseX/100-mouseX/25, 230-mouseY/25, 50, 10);
rect(320-mouseX/100-mouseX/25, 240-mouseY/25, 70, 10);
rect(320-mouseX/100-mouseX/25, 250-mouseY/25, 90, 10);
rect(320-mouseX/100-mouseX/25, 260-mouseY/25, 110, 10);
rect(320-mouseX/100-mouseX/25, 270-mouseY/25, 130, 10);
rect(320-mouseX/100-mouseX/25, 280-mouseY/25, 150, 10);
rect(320-mouseX/100-mouseX/25, 290-mouseY/25, 170, 10);
//Lake dirt
fill(63, 52, 20);
rect(200-mouseX/20, 380, 500, 50);
rect(380-mouseX/20, 370, 200, 50);
rect(400-mouseX/20, 360, 100, 50);
rect(420-mouseX/20, 350, 100, 50);
rect(340-mouseX/20, 320, 140, 10);
rect(340-mouseX/20, 320, 140, 10);
rect(200-mouseX/20, 310, 300, 10);
rect(150-mouseX/20, 300, 300, 10);
fill(63, 52, 20, 100);
rect(200-mouseX/20, 380, 520, 50);
rect(380-mouseX/20, 370, 220, 50);
rect(400-mouseX/20, 360, 120, 50);
rect(420-mouseX/20, 350, 120, 50);
rect(340-mouseX/20, 320, 160, 10);
rect(340-mouseX/20, 320, 160, 10);
rect(200-mouseX/20, 310, 320, 10);
rect(150-mouseX/20, 300, 320, 10);
//brown dirt
fill(76, 61, 30);
rect(200-mouseX/20, 390, 500, 10);
rect(400-mouseX/20, 370, 100, 10);
rect(420-mouseX/20, 360, 100, 10);
rect(420-mouseX/20, 350, 100, 10);
rect(380-mouseX/20, 310, 140, 10);
rect(260-mouseX/40, 300, 300, 10);
rect(150-mouseX/40, 290, 300, 10);
rect(200-mouseX/20, 400, 500, 50);
rect(200-mouseX/40, 290, 400, 10);
rect(180-mouseX/40, 280, 360, 10);
rect(140-mouseX/40, 270, 350, 10);
rect(140-mouseX/40, 250, 190, 10);
rect(160-mouseX/40, 240, 130, 10);
//Light dirt
fill(90, 70, 45);
rect(200-mouseX/20, 410, 500, 50);
rect(210-mouseX/40, 280, 320, 10);
rect(300-mouseX/40, 290, 200, 10);
rect(300-mouseX/40, 300, 80, 10);
rect(140-mouseX/40, 270, 300, 10);
rect(140-mouseX/40, 260, 320, 10);
fill(90, 70, 45, 100);
rect(200-mouseX/20, 410, 520, 50);
rect(210-mouseX/40, 280, 340, 10);
rect(300-mouseX/40, 290, 220, 10);
rect(300-mouseX/40, 300, 100, 10);
rect(140-mouseX/40, 270, 320, 10);
//bird head
fill(255);
triangle(mouseX, mouseY, mouseX-10, 5+mouseY, 10+mouseX, 5+mouseY);
//bird body
rect(mouseX, 10+mouseY, 20, 10);
//bird left wing
triangle(mouseX-30, mouseY, mouseX-10, mouseY+5, mouseX-10, mouseY+15);
triangle(mouseX-40, mouseY+10, mouseX-10, mouseY+10, mouseX-30, mouseY);
triangle(mouseX-40, mouseY+10, mouseX-30, mouseY, mouseX-60, mouseY);
triangle(mouseX-40, mouseY+10, mouseX-60, mouseY, mouseX-60, mouseY+5);
triangle(mouseX-70, mouseY-5, mouseX-60, mouseY, mouseX-60, mouseY+5);
//bird right wing
triangle(mouseX+10, mouseY+5, mouseX+10, mouseY+15, mouseX+30, mouseY);
triangle(mouseX+10, mouseY+10, mouseX+30, mouseY, mouseX+40, mouseY+10);
triangle(mouseX+30, mouseY, mouseX+40, mouseY+10, mouseX+60, mouseY);
triangle(mouseX+40, mouseY+10, mouseX+60, mouseY, mouseX+60, mouseY+5);
triangle(mouseX+60, mouseY, mouseX+60, mouseY+5, mouseX+70, mouseY-5);
//bird tail
rect(mouseX, 18+mouseY, 20, 8);
triangle(mouseX-10, mouseY+15, mouseX-10, mouseY+23, mouseX-20, mouseY+25);
triangle(mouseX-10, mouseY+22, mouseX, mouseY+25, mouseX+10, mouseY+22);
triangle(mouseX+10, mouseY+15, mouseX+10, mouseY+23, mouseX+20, mouseY+25);
//clouds
fill(255, 90);
rect(10 + mouseX, 40, 30, 10);
rect(20 + mouseX, 50, 80, 10);
rect(20 + mouseX, 60, 100, 10);
rect(10 + mouseX, 40, 30, 10);
rect(20 + mouseX, 50, 80, 10);
rect(20 + mouseX, 60, 100, 10);
rect(190 + mouseX/1.2, 20, 10, 10);
rect(200 + mouseX/1.2, 30, 80, 10);
rect(200 + mouseX/1.2, 40, 120, 10);
rect(mouseX - 180/1.1, 40, 40, 10);
rect(mouseX - 200/1.1, 50, 100, 10);
rect(mouseX - 200/1.1, 60, 120, 10);
}
//fire surrounds bird
void mousePressed() {
frameRate(20);
fill(255,110,20,50);
rect(mouseX, mouseY+10, 100, 50);
rect(mouseX, mouseY+10, 50, 100);
rect(mouseX, mouseY+10, 70, 70);
rect(mouseX, mouseY+10, 35, 35);
rect(mouseX, mouseY+10, 120, 10);
rect(mouseX, mouseY+10, 10, 120);
}