//world setup starts here
void setup() {
size(400,400);//set canvas size to 400x400
frameRate(5);
background(240,240,240);//set background colour
}
//Draw loop starts here
void draw(){
//COVERING THE BACKGROUND FOR THE FLAPPING ANIMATION//
fill(240,240,240);
noStroke();
ellipse(275,245,200,200);
////////////////////////CHICKEN/////////////////////////////////
//COLOUR TORSO AND TAIL WITH LINES (solely for filling blank space with colour)//
stroke(255);
strokeWeight(10);
line(180,190, 245,185);
line(245,175, 245,187);
line(245,175, 238,187);
strokeWeight(3);
line(257,182, 245,179);
line(254,172, 245,171);
stroke(0);
strokeWeight(1.5);
//HEAD FEATHERS//
fill(255,150,150);//set fill to a dull red
arc(width/2-17, height/2-50, 15, 15, PI, PI*2);//leftmost feather arc
arc(width/2-5, height/2-50, 10,10, PI-QUARTER_PI/4, PI*2+QUARTER_PI/2);//middle feather arc
arc(width/2+2, height/2-42, 14, 13, PI+PI/3, PI*2+QUARTER_PI);//rightmost feather arc
//The lines below are for filling with colour
strokeWeight(8);
stroke(255,150,150);
line(180,152,197,155);
line(200,157,197,155);
stroke(0);
strokeWeight(1.5);
line(176,156,175,150);//this line connects the leftmost arc to the head of the chicken
//BODY//
fill(255);
arc(width/2-6, height/2+11, 90, 90, -QUARTER_PI/2, PI+QUARTER_PI/4);//the first layer of the chicken's body arc
arc(width/2+3, height/2+5, 105, 100, -QUARTER_PI/2, PI+QUARTER_PI/4); //this body arc goes over the first body arc to hide the stroke
noStroke();//remove stroke for a colouring arc
arc(width/2-1, height/2+5, 99, 101, -QUARTER_PI/2, PI+QUARTER_PI/4);//this arc is for colouring over stroke
stroke(0);//reenable stroke
arc(width/2-15, height/2-10, 66, 65, PI, PI*2-QUARTER_PI/3.3);//the arc at the head of the chicken
line(217,183,235,180);//line between head arc and tail
//TAIL//
noFill();//disable fill
arc(width/2+48, height/2-20, 25, 20, PI, PI+QUARTER_PI/2*7);//topmost tail feather arc
arc(width/2+55, height/2-22, 10, 8, PI, PI+QUARTER_PI/2*7);//second tail feather arc
arc(width/2+51, height/2-8, 28, 15, PI+HALF_PI, PI+QUARTER_PI*3);//bottommost tail feather arc
fill(255);//apply fill because it's safe to do so with the following arc
arc(width/2+51, height/2-14, 18, 15, PI+HALF_PI, PI*2);//third tail feather arc
//WING//
arc(width/2+10, height/2, 60, 50, -QUARTER_PI/2, HALF_PI+HALF_PI/2);//the arc of the wing
line(215,195,236,189);//the line for the wing
//BEAK FEATHERS//
fill(255,150,150);//set the fill to a dull red
noStroke();
ellipse(173,205,20,11);//fill empty space with an ellipse meant for colouring
stroke(0);//reapply stroke for the next arcs
arc(width/2-33, height/2+8, 8, 12, QUARTER_PI/4, PI+QUARTER_PI);//leftmost feather arc
arc(width/2-24, height/2+5, 13, 16, -HALF_PI/2, HALF_PI+HALF_PI/2);//rightmost feather arc
//BEAK//
fill(255,255,150);//change fill to a dull yellow
ellipse(width/2-40,height/2-4,40,16);//ellipse for the beak
//EYE//
fill(0);//set fill to black
ellipse((mouseX-width/2-15) * 0.005 + 185,(mouseY-height/2-17) * 0.005 + 183,6,6);//the eye ellipse
}
//keyPressed function places an arc to represent the wing and covers the old wing
void keyPressed(){
fill(255);
noStroke();
arc(width/2+12, height/2+10, 55, 40, 0, PI*2);//this arc covers the old wing
stroke(0);
arc(width/2, height/2-10, 90, 65, -PI/3, HALF_PI);//the new wing that gets placed
noStroke();
arc(width/2+5, height/2+2, 34, 40, 0, PI*2);//this arc covers part of the stroke of the new wing
}
//mousepressed function that makes the chicken blink
void mousePressed(){
fill(255);
noStroke();
ellipse((mouseX-width/2-15) * 0.01 + 185,(mouseY-height/2-17) * 0.01 + 183,12,12);//place a white ellipse over the eye
}