Your browser does not support the canvas tag.

previous        Show / Hide Source        Download        next
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);
}