void setup() {
size (400, 400);
colorMode(RGB, 100);
background(10, 60, 10);
smooth();
//Houses
rectMode(CENTER);
rect(200, 320, 20, 20);
rect(220, 325, 20, 20);
rect(265, 330, 20, 20);
rect(230, 350, 20, 20);
rect(275, 360, 20, 20);
rect(300, 335, 20, 20);
rect(380, 375, 20, 20);
rect(335, 340, 20, 20);
rect(310, 360, 20, 20);
rect(345, 380, 20, 20);
rect(100, 380, 20, 20);
rect(190, 360, 20, 20);
rect(175, 340, 20, 20);
rect(130, 350, 20, 20);
rect(145, 310, 20, 20);
rect(80, 315, 20, 20);
rect(20, 385, 20, 20);
rect(35, 320, 20, 20);
rect(60, 350, 20, 20);
rect(345, 310, 20, 20);
//doors
fill(60, 50, 30);
rect(200, 325, 4, 10);
rect(220, 330, 4, 10);
rect(265, 335, 4, 10);
rect(230, 355, 4, 10);
rect(275, 365, 4, 10);
rect(300, 340, 4, 10);
rect(380, 380, 4, 10);
rect(335, 345, 4, 10);
rect(310, 365, 4, 10);
rect(345, 385, 4, 10);
rect(100, 385, 4, 10);
rect(190, 365, 4, 10);
rect(175, 345, 4, 10);
rect(130, 355, 4, 10);
rect(145, 315, 4, 10);
rect(80, 320, 4, 10);
rect(20, 390, 4, 10);
rect(35, 325, 4, 10);
rect(60, 355, 4, 10);
rect(345, 315, 4, 10);
}
void draw () {
//COMMENT PRINT LINE OUT!!
println(mouseX, mouseY);
noStroke();
strokeWeight(1);
rectMode(CENTER);
ellipseMode(CENTER);
//sky
fill(0, 0, 100);
rect(200, 100, 400, 200);
//Cloud
fill(100);
ellipse(frameCount/8, 50, 50, 50);
ellipse(frameCount/8-30, 50, 50, 50);
ellipse(frameCount/8+30, 50, 50, 50);
ellipse(frameCount/8, 20, 50, 50);
//Wizard coat
fill(100);
triangle(220, 120, 180, 120, 200, 70);
rect(200, 85, 20, 20);
stroke(0);
fill(50, 80, 90);
rect(200, 110, 10, 70);
//arming holding staff
stroke(100);
strokeWeight(5);
line(160, 95, 190, 78);
stroke(0);
strokeWeight(1);
fill(90, 80, 90);
ellipse(160, 95, 9, 8);
//Magic Staff
fill(100);
rect(160, 100, 6, 60);
fill(100, 0, 0);
rect(160, 75, 6, 3);
fill(20, 100, 20);
ellipse(160, 65, 10, 10);
fill(0);
rect(160, 70, 8, 3);
//thumb
fill(90, 80, 90);
ellipse(162, 93, 3, 3);
//Spellcasting Arm
stroke(100);
strokeWeight(5);
line(210, 78, 190+mouseX*0.1, 100);
stroke(0);
strokeWeight(1);
fill(90, 80, 90);
ellipse(190+mouseX*0.1, 100, 8, 8);
//neck
fill(90, 80, 90);
rect(200, 70, 8, 10);
//hair
noStroke();
fill(50, 70, 90);
quad(180, 70, 200, 50, 220, 70, 200, 65);
quad(175, 60, 200, 40, 225, 50, 200, 60);
quad(175, 40, 200, 40, 225, 60, 200, 60);
quad(180, 50, 200, 40, 225, 40, 200, 70);
//head
stroke(0);
fill(90, 80, 90);
ellipse(185, 55, 5, 5);
ellipse(215, 55, 5, 5);
ellipse(200, 50, 30, 40);
//eyes
fill(100);
arc(193, 48, 9, 9, (QUARTER_PI/2)*-1, PI+QUARTER_PI);
arc(207, 48, 9, 9, QUARTER_PI*-1, PI+(QUARTER_PI/2));
//pupils
fill(0);
ellipse(207, 50, 1, 1);
ellipse(193, 50, 1, 1);
//under eye wrinkles
noFill();
curve(203, 50, 204, 54, 210, 54, 209, 50);
curve(197, 50, 196, 54, 190, 54, 191, 50);
//Nose
curve(199, 0, 198, 53, 202, 53, 201, 0);
//Mouth
curve(190, 50, 193, 62, 207, 62, 210, 50);
//mouth wrinkles
curve(200, 60, 192, 60, 192, 64, 200, 64);
curve(200, 60, 208, 60, 208, 64, 200, 64);
//Wizard hat
fill(50, 80, 90);
triangle(200, 10, 187, 40, 213, 40);
//Star on hat
fill(100);
noStroke();
triangle(200, 25, 195, 35, 200, 33);
triangle(200, 25, 205, 35, 200, 33);
triangle(207, 30, 193, 30, 200, 33);
//Unibrow
noFill();
stroke(50, 70, 90);
strokeWeight(2);
curve(190, 30, 191, 43, 209, 43, 210, 30);
//Castle
fill(50);
stroke(0);
strokeWeight(1);
rectMode(CORNERS);
rect(140, 120, 260, 300);
line(140, 150, 260, 150);
line(140, 170, 260, 170);
line(140, 190, 260, 190);
line(140, 210, 260, 210);
line(140, 230, 260, 230);
line(140, 250, 260, 250);
line(140, 270, 260, 270);
line(164, 120, 164, 300);
line(188, 120, 188, 300);
line(213, 120, 213, 300);
line(237, 120, 237, 300);
//left wall
quad(0, 120, 0, 270, 140, 300, 140, 150);
line(140, 150, 0, 120);
line(140, 170, 0, 140);
line(140, 190, 0, 160);
line(140, 210, 0, 180);
line(140, 230, 0, 200);
line(140, 250, 0, 220);
line(140, 270, 0, 240);
line(140, 300, 0, 270);
//Y=0.2X+120, Y=0.2X+270 yay math
line(110, 142, 110, 292);
line(70, 134, 70, 284);
line(30, 126, 30, 276);
//Right wall
quad(400, 120, 400, 270, 260, 300, 260, 150);
line(260, 150, 400, 120);
line(260, 170, 400, 140);
line(260, 190, 400, 160);
line(260, 210, 400, 180);
line(260, 230, 400, 200);
line(260, 250, 400, 220);
line(260, 270, 400, 240);
line(260, 300, 400, 270);
line(290, 142, 290, 292);
line(330, 134, 330, 284);
line(370, 126, 370, 276);
}
void mousePressed() {
//Staff flash
noStroke();
fill(0, 100, 0);
ellipse(160, 65, 15, 15);
//Portal
fill(20, 100, 20);
ellipse(mouseX, mouseY, 100, 100);
stroke(0, 50, 0);
strokeWeight(6);
ellipse(mouseX, mouseY, 80, 80);
ellipse(mouseX, mouseY, 60, 60);
ellipse(mouseX, mouseY, 30, 30);
noStroke();
fill(0, 80, 0);
ellipse(mouseX+20, mouseY+17, 9, 12);
ellipse(mouseX-13, mouseY-20, 10, 13);
ellipse(mouseX+20, mouseY-12, 12, 11);
ellipse(mouseX+13, mouseY-20, 13, 12);
ellipse(mouseX-25, mouseY+14, 12, 13);
ellipse(mouseX-12, mouseY+25, 10, 11);
ellipse(mouseX+25, mouseY-16, 13, 11);
ellipse(mouseX, mouseY+26, 9, 12);
ellipse(mouseX, mouseY-20, 10, 13);
ellipse(mouseX, mouseY-27, 12, 11);
ellipse(mouseX, mouseY+24, 13, 12);
ellipse(mouseX, mouseY+23, 12, 13);
ellipse(mouseX, mouseY+20, 10, 11);
ellipse(mouseX, mouseY-26, 13, 11);
ellipse(mouseX-26, mouseY, 9, 12);
ellipse(mouseX+21, mouseY, 10, 13);
ellipse(mouseX-25, mouseY, 12, 11);
ellipse(mouseX+21, mouseY, 13, 12);
ellipse(mouseX-23, mouseY, 12, 13);
ellipse(mouseX+21, mouseY, 10, 11);
ellipse(mouseX-22, mouseY, 13, 11);
ellipse(mouseX-20, mouseY-23, 9, 12);
ellipse(mouseX+23, mouseY+25, 10, 13);
ellipse(mouseX-25, mouseY+27, 12, 11);
ellipse(mouseX+20, mouseY-24, 13, 12);
ellipse(mouseX-23, mouseY-23, 12, 13);
ellipse(mouseX+20, mouseY-20, 10, 11);
ellipse(mouseX-22, mouseY+26, 13, 11);
ellipse(mouseX+24, mouseY-20, 12, 8);
ellipse(mouseX+22, mouseY+24, 15, 10);
ellipse(mouseX+22, mouseY-26, 9, 13);
fill(0, 75, 0);
ellipse(mouseX, mouseY+7, 9, 12);
ellipse(mouseX-13, mouseY, 10, 13);
ellipse(mouseX, mouseY-12, 12, 11);
ellipse(mouseX+13, mouseY, 13, 12);
ellipse(mouseX, mouseY+14, 12, 13);
ellipse(mouseX-12, mouseY, 10, 11);
ellipse(mouseX, mouseY-16, 13, 11);
ellipse(mouseX, mouseY+16, 9, 12);
ellipse(mouseX-13, mouseY, 10, 13);
ellipse(mouseX+15, mouseY-17, 12, 11);
ellipse(mouseX-14, mouseY+14, 13, 12);
ellipse(mouseX+13, mouseY+13, 12, 13);
ellipse(mouseX-14, mouseY, 10, 11);
ellipse(mouseX+14, mouseY-16, 13, 11);
ellipse(mouseX-1, mouseY-25, 9, 12);
ellipse(mouseX+1, mouseY+25, 10, 13);
ellipse(mouseX-5, mouseY+24, 12, 11);
ellipse(mouseX+1, mouseY-24, 13, 12);
ellipse(mouseX-3, mouseY-24, 12, 13);
ellipse(mouseX+1, mouseY-25, 10, 11);
ellipse(mouseX-2, mouseY+26, 13, 11);
ellipse(mouseX-20, mouseY-10, 9, 12);
ellipse(mouseX+23, mouseY+10, 10, 13);
ellipse(mouseX-25, mouseY+7, 12, 11);
ellipse(mouseX+20, mouseY-14, 13, 12);
ellipse(mouseX-23, mouseY-13, 12, 13);
ellipse(mouseX+20, mouseY-10, 10, 11);
ellipse(mouseX-22, mouseY+6, 13, 11);
ellipse(mouseX+24, mouseY-10, 12, 8);
ellipse(mouseX+22, mouseY+10, 15, 10);
ellipse(mouseX+22, mouseY-10, 9, 13);
fill(80, 95, 80);
ellipse(mouseX+30, mouseY+30, 9, 12);
ellipse(mouseX-33, mouseY-30, 10, 13);
ellipse(mouseX+35, mouseY-27, 12, 11);
ellipse(mouseX-30, mouseY+34, 13, 12);
ellipse(mouseX+23, mouseY+43, 12, 13);
ellipse(mouseX-20, mouseY+40, 10, 11);
ellipse(mouseX+42, mouseY-26, 13, 11);
ellipse(mouseX+40, mouseY+20, 9, 12);
ellipse(mouseX-43, mouseY-20, 10, 13);
ellipse(mouseX+45, mouseY-27, 12, 11);
ellipse(mouseX-40, mouseY+24, 13, 12);
ellipse(mouseX+43, mouseY+23, 12, 13);
ellipse(mouseX-40, mouseY+20, 10, 11);
ellipse(mouseX+42, mouseY-26, 13, 11);
ellipse(mouseX-10, mouseY-50, 9, 12);
ellipse(mouseX+13, mouseY+50, 10, 13);
ellipse(mouseX-5, mouseY+47, 12, 11);
ellipse(mouseX+10, mouseY-44, 13, 12);
ellipse(mouseX-13, mouseY-43, 12, 13);
ellipse(mouseX+10, mouseY-50, 10, 11);
ellipse(mouseX-12, mouseY+46, 13, 11);
ellipse(mouseX-50, mouseY-10, 9, 12);
ellipse(mouseX+43, mouseY+10, 10, 13);
ellipse(mouseX-45, mouseY+7, 12, 11);
ellipse(mouseX+50, mouseY-14, 13, 12);
ellipse(mouseX-43, mouseY-13, 12, 13);
ellipse(mouseX+50, mouseY-10, 10, 11);
ellipse(mouseX-42, mouseY+6, 13, 11);
ellipse(mouseX, mouseY-16, 9, 12);
ellipse(mouseX+13, mouseY, 10, 13);
ellipse(mouseX+15, mouseY+17, 12, 11);
ellipse(mouseX+14, mouseY-14, 13, 12);
ellipse(mouseX-13, mouseY-13, 12, 13);
ellipse(mouseX+14, mouseY, 10, 11);
ellipse(mouseX-14, mouseY+16, 13, 11);
}