//sets up program, running once
void setup() {
size(400, 400);
}
//draws frames
void draw() {
//sets frame rate to 60
frameRate(60);
//sets background colour
background(222, 91, 16);
//sun
noStroke();
fill(255, 212, 70, 63);
ellipse(300, 400, 300, 300);
ellipse(300, 400, 350, 350);
ellipse(300, 400, 400, 400);
ellipse(300, 400, 500, 500);
ellipse(300, 400, 600, 600);
ellipse(300, 400, 700, 700);
//Clouds move left and right with mouse
fill(255, 195, 149);
ellipse(mouseX, 20, 100, 30);
ellipse(mouseX/2-100, 50, 180, 50);
ellipse(mouseX/3+300, 50, 40, 10);
ellipse(mouseX/2+300, 150, 150, 25);
fill(255, 208, 173);
ellipse(mouseX-30, 35, 70, 20);
ellipse(mouseX/3+100, 100, 100, 40);
ellipse(mouseX/2+350, 120, 100, 20);
ellipse(mouseX/3-100, 150, 100, 20);
//backgound
fill(30);
stroke(30);
strokeWeight(1);
rectMode(CENTER);
//Dome
rect(100, 130, 40, 20);
rect(100, 110, 25, 30);
triangle(87, 95, 112, 95, 100, 70);
line(100, 70, 100, 50);
line(95, 55, 105, 55);
ellipse(100, 70, 10, 10);
ellipse(100, 250, 200, 250);
rect(100, 365, 150, 250);
ellipse(25, 350, 150, 200);
rect(25, 420, 150, 200, 7);
ellipse(175, 350, 150, 200);
rect(175, 420, 150, 200, 7);
//Duomo front
fill(20);
stroke(20);
rect(95, 420, 200, 100, 5);
rect(95, 350, 120, 120, 5);
rect(95, 280, 130, 20, 2);
triangle(40, 270, 150, 270, 95, 240);
ellipse(30, 370, 60, 50);
ellipse(160, 370, 60, 50);
strokeWeight(2);
line(95, 240, 95, 200);
//Tower
fill(10);
stroke(10);
triangle(230, 160, 330, 160, 280, 155);
rect(280, 300, 100, 220);
rect(280, 180, 120, 40, 5);
strokeWeight(3);
line(280, 155, 280, 80);
triangle(222, 200, 240, 200, 240, 230);
triangle(338, 200, 320, 200, 320, 230);
//Ezio
//right arm
strokeWeight(30);
stroke(220);
line(160, 210, 150, 235);
stroke(255);
line(148, 240, 125, 235);
//glove
noStroke();
fill(95, 58, 33);
triangle(113, 223, 105, 210, 100, 223);
triangle(95, 230, 90, 215, 105, 220);
triangle(85, 230, 95, 225, 95, 240);
triangle(95, 245, 95, 230, 110, 240);
quad(95, 223, 115, 223, 105, 240, 95, 240);
fill(108, 68, 42);
quad(113, 220, 120, 220, 112, 245, 105, 242);
//back shoulder thing
fill(150);
ellipse(163, 210, 50, 30);
//red lines
stroke(164, 3, 3);
strokeWeight(1);
line(155,200,150,220);
line(145,200,140,214);
//cape lining
noStroke();
fill(90,19,1);
triangle(242,186,230,275,300,260);
//chest
fill(190);
noStroke();
quad(163, 220, 240, 200, 240, 250, 185, 250);
//red lines
strokeWeight(1);
stroke(164, 3, 3);
line(178,220,220,280);
line(168,220,210,280);
line(190,215,225,280);
line(198,215,233,280);
//robe lining
fill(164, 60, 44);
noStroke();
triangle(220, 300, 280, 300, 230, 260);
//hood lining
stroke(255);
strokeWeight(1);
quad(127, 205, 155, 210, 160, 190, 140, 170);
//back
noStroke();
fill(190);
ellipse(235, 210, 30, 40);
//sash
noStroke();
fill(164, 3, 3);
quad(250, 205, 255, 230, 255, 252, 202, 238);
strokeWeight(1);
stroke(116, 15, 15);
line(202, 238, 235, 238);
line(202, 238, 238, 230);
line(202, 238, 230, 225);
//tails
noStroke();
quad(250, 220, 250, 225, 270, 270, 280, 270);
quad(270, 270, 280, 270, 285, 300, 275, 300);
quad(250, 220, 250, 225, 285, 270, 300, 270);
quad(285, 270, 300, 270, 300, 300, 295, 300);
//right arm
strokeWeight(30);
stroke(220);
line(230, 225, 215, 195);
stroke(255);
line(220, 230, 232, 225);
//shoulder pad thing
noStroke();
fill(107, 70, 51);
quad(195, 198, 230, 175, 250, 195, 205, 210);
//cape
fill(57,37,27);
triangle(210,208,250,195,278,230);
//bracer
fill(76, 53, 37);
quad(195, 230, 210, 215, 220, 250, 200, 250);
//neck
fill(198, 134, 78);
triangle(165, 200, 200, 200, 183, 218);
/*right side
outer collar
*/
noStroke();
fill(235);
triangle(186, 220, 160, 220, 158, 210);
fill(164, 3, 3); //red lining
triangle(180, 218, 162, 218, 160, 214);
//inner collar
fill(210);
triangle(186, 220, 160, 190, 150, 210);
//face
noStroke();
fill(232, 172, 118);
ellipse(175, 165, 65, 75);
fill(129, 95, 67);
rect(170, 152, 60, 30);
noFill();
stroke(129, 95, 67);
strokeWeight(1);
line(165, 188, 170, 185);
line(170, 185, 175, 188);
line(167, 184, 167, 188);
line(170, 165, 170, 175);
//eyes
noStroke();
fill(255);
ellipse(158, 165, 15, 15);
ellipse(183, 165, 15, 15);
fill(98, 70, 56);
ellipse(158, 165, 10, 10);
ellipse(183, 165, 10, 10);
fill(255);
ellipse(160, 162, 3, 3);
ellipse(184, 162, 3, 3);
//eyebrows
fill(99, 70, 52);
quad(150, 155, 165, 160, 165, 153, 155, 150);
quad(175, 160, 190, 157, 185, 150, 175, 153);
//hood
noStroke();
fill(255);
quad(198, 188, 220, 165, 235, 175, 198, 205);
quad(198, 188, 220, 165, 215, 130, 188, 140);
quad(188, 140, 215, 130, 190, 110, 170, 130);
quad(170, 130, 190, 110, 150, 120, 155, 140);
quad(155, 140, 150, 120, 135, 140, 140, 190);
triangle(135, 140, 140, 190, 132, 185);
triangle(140, 190, 132, 185, 127, 205);
//point
quad(168, 150, 155, 140, 170, 130, 188, 140);
/*left side
outer collar
*/
noStroke();
fill(255);
triangle(198, 188, 185, 220, 205, 210);
//inner collar
fill(235);
triangle(198, 188, 185, 220, 180, 188);
fill(164, 3, 3); //red lining
triangle(196, 193, 187, 216, 200, 208);
//left leg
strokeWeight(30);
stroke(121, 77, 64);
line(165, 285, 210, 280);
noStroke();
fill(121, 77, 64);
triangle(225, 270, 210, 295, 230, 305);
stroke(101, 63, 42);
line(150, 295, 180, 260);
//right leg
stroke(101, 63, 42);
strokeWeight(30);
line(220, 265, 180, 240);
stroke(153, 102, 51);
line(180, 240, 188, 260);
//right boot
fill(76, 53, 37);
noStroke();
quad(168, 260, 205, 260, 222, 300, 198, 300);
quad(158, 250, 195, 250, 195, 260, 168, 260);
triangle(170, 300, 198, 285, 198, 300);
//robe tail right
noStroke();
fill(140);
quad(250, 250, 280, 300, 240, 290, 210, 240);
fill(190);
quad(200, 235, 250, 250, 275, 290, 250, 285);
fill(255);
quad(230, 245, 255, 250, 270, 280, 250, 270);
//building and platform
fill(121, 49, 13);
noStroke();
rectMode(CORNER);
rect(300, 280, 100, 120);
fill(95, 37, 8);
rect(290, 240, 110, 60);
rect(290, 205, 30, 35);
rect(340, 205, 30, 35);
rect(390, 205, 30, 35);
//bricks
noFill();
stroke(95, 37, 8);
strokeWeight(1);
rect(320, 320, 40, 20);
rect(360, 340, 40, 20);
rect(300, 380, 40, 20);
//platform
fill(121, 72, 22);
stroke(90, 41, 2);
rect(80, 300, 220, 30);
}
//draws blade when mouse is pressed and keeps it on screen for 1 frame
void mousePressed() {
//sets frame rate to 1
frameRate(1);
//blade
noStroke();
fill(240);
triangle(110, 226, 75, 216, 108, 233);
println("Requiescat in Pace.");
}