Your browser does not support the canvas tag.

previous        Show / Hide Source        Download        next
void setup() {
  size(400, 400);
}

void draw() {
  background(255);
  frameRate(60);


  //shield
  //sword


  //background
  noStroke();

  fill(185, 186, 193);
  quad(mouseX-150, mouseY-150, mouseX+150, mouseY-150, mouseX+150, mouseY+150, mouseX-150, mouseY+150);//main

  fill(150, 150, 168);
  quad(0, 0, 400, 0, mouseX+150, mouseY-150, mouseX-150, mouseY-150);//top
  fill(177, 177, 188);
  quad(0, 0, mouseX-150, mouseY-150, mouseX-150, mouseY+150, 0, 400);//left
  fill(177, 177, 188);
  quad(mouseX+150, mouseY-150, 400, 0, 400, 400, mouseX+150, mouseY+150);//right
  fill(139, 139, 147);
  quad(mouseX-150, mouseY+150, mouseX+150, mouseY+150, 400, 400, 0, 400);//down

  rectMode(CENTER);//DOOR
  ellipseMode(CENTER);

  fill(175, 125, 50);
  noStroke();

  ellipse(mouseX, mouseY, 100, 120);
  rect(mouseX-25, mouseY+75, 50, 150);
  rect(mouseX+25, mouseY+75, 50, 150);
  fill(0, 0, 0);
  stroke(147, 106, 44);
  line(mouseX, mouseY-60, mouseX, mouseY+150);  
  fill(255, 218, 67);
  ellipse(mouseX-8, mouseY+60, 6, 6);
  ellipse(mouseX+8, mouseY+60, 6, 6);



  //LightEffects_left
  noStroke();
  ellipseMode(CENTER);
  fill(255, 250, 95, 80);
  ellipse(0.5*(mouseX-220), 0.60*(mouseY+51.6666)-20, 120, 120); //1-2

  ellipse(0.75*(mouseX-177.5), 0.80*(mouseY-8.75)-20, 105, 105);//2-2

  ellipse(1*(mouseX-163), 1*(mouseY-45)-20, 90, 90);//2-3

  //LightEffect_Right
  noStroke();
  ellipseMode(CENTER);
  fill(255, 250, 95, 100);
  ellipse(0.5*(mouseX+600), 0.60*(mouseY+51.6666)-20, 120, 120); //1-2

  ellipse(0.75*(mouseX+305.333), 0.80*(mouseY-8.75)-20, 105, 105); //2-2

  ellipse(1*(mouseX+163), 1*(mouseY-45)-20, 90, 90); //2-3





  //candles on right side
  ellipseMode(CENTER);
  rectMode(CENTER);
  fill(234, 173, 38);
  rect(1*(mouseX+163), 1*(mouseY-45), 4, 30.333); //3
  fill(0, 0, 0, 200);
  rect(1*(mouseX+163), 1*(mouseY-52), 4, 15); //3-1
  fill(255, 201, 6);
  rect(0.75*(mouseX+305.333), 0.80*(mouseY-8.75), 4.5, 37); //2
  fill(0, 0, 0, 200);
  rect(0.75*(mouseX+305.333), 0.80*(mouseY-20.75), 4, 15); //2-1
  fill(255, 229, 173);
  rect(0.5*(mouseX+600), 0.60*(mouseY+51.6666), 6, 43); //1
  fill(0, 0, 0, 200);
  rect(0.5*(mouseX+600), 0.60*(mouseY+29.6666), 6, 15); //1-1


  //candles on LEFT side
  ellipseMode(CENTER);
  rectMode(CENTER);
  fill(206, 165, 75);
  rect(1*(mouseX-163), 1*(mouseY-45), 4, 30.333); //3
  fill(0, 0, 0, 200);
  rect(1*(mouseX-163), 1*(mouseY-52), 4, 15); //3-1
  fill(255, 201, 6);
  rect(0.75*(mouseX-177.5), 0.80*(mouseY-8.75), 4.5, 37); //2
  fill(0, 0, 0, 200);
  rect(0.75*(mouseX-177.5), 0.80*(mouseY-20.75), 4, 15); //2-1
  fill(255, 229, 173);
  rect(0.5*(mouseX-220), 0.60*(mouseY+51.6666), 6, 43); //1
  fill(0, 0, 0, 200);
  rect(0.5*(mouseX-220), 0.60*(mouseY+29.6666), 6, 15); //1-1

  //LightEffects_BACKGROUND
  noStroke();
  fill(0, 0, 0, 80);
  rectMode(CENTER);
  rect(mouseX, mouseY, 900, 900);




  //fire on candles (right1)

  noStroke();

  fill(255, 0, abs(100-(3*frameCount)%100));
  rect(0.5*(mouseX+583), (0.60*(mouseY+40.6666)-(3*frameCount)%45), 10, 10);
  fill(255, 255, 0, 225);
  rect(0.5*(mouseX+611), (0.60*(mouseY+40.6666)-(3*frameCount)%13), 10, 10);
  fill(255, 255, 0, 225);
  rect(0.5*(mouseX+607), (0.60*(mouseY+40.6666)-(3*frameCount)%25), 10, 10);
  fill(255, 0, 0, abs(100-(3*frameCount)%100));
  rect(0.5*(mouseX+593), (0.60*(mouseY+40.6666)-(3*frameCount)%50), 10, 10);
  fill(0, 0, 0, abs(100-(3*frameCount)%100));
  rect(0.5*(mouseX+611), (0.60*(mouseY+40.6666)-(3*frameCount)%80), 10, 10);
  fill(255, 0, 0, abs(100-(3*frameCount)%100));
  rect(0.5*(mouseX+600), (0.60*(mouseY+40.6666)-(3*frameCount)%80), 8, 8);
  fill(255, 0, 0, abs(100-(3*frameCount)%100));
  rect(0.5*(mouseX+600), (0.60*(mouseY+40.6666)-(3*frameCount)%60), 8, 8);
  fill(255, 0, 0, abs(100-(3*frameCount)%100));
  rect(0.5*(mouseX+600), (0.60*(mouseY+40.6666)-(3*frameCount)%60), 8, 8);

  //fire on candles (right2)

  noStroke();

  fill(255, 0, abs(100-(3*frameCount)%100));
  rect(0.75*(mouseX+319.333), (0.80*(mouseY-20)-(3*frameCount)%45), 10, 10);
  fill(255, 255, 0, 225);
  rect(0.75*(mouseX+299.333), (0.80*(mouseY-20)-(3*frameCount)%13), 10, 10);
  fill(255, 255, 0, 225);
  rect(0.75*(mouseX+308.333), (0.80*(mouseY-20)-(3*frameCount)%25), 10, 10);
  fill(255, 0, 0, abs(100-(3*frameCount)%100));
  rect(0.75*(mouseX+310.333), (0.80*(mouseY-20)-(3*frameCount)%50), 10, 10);
  fill(0, 0, 0, abs(100-(3*frameCount)%100));
  rect(0.75*(mouseX+299.333), (0.80*(mouseY-20)-(3*frameCount)%80), 10, 10);
  fill(255, 0, 0, abs(100-(3*frameCount)%100));
  rect(0.75*(mouseX+297.333), (0.80*(mouseY-20)-(3*frameCount)%80), 8, 8);
  fill(255, 0, 0, abs(100-(3*frameCount)%100));
  rect(0.75*(mouseX+305.333), (0.80*(mouseY-20)-(3*frameCount)%60), 8, 8);

  //fire on candles (right3)

  noStroke();

  fill(255, 255, 0, 225);
  rect(1*(mouseX+160), (1*(mouseY-55)-(3*frameCount)%34), 8, 8);
  fill(255, 255, 0, 225);
  rect(1*(mouseX+147), (1*(mouseY-55)-(3*frameCount)%23), 8, 8);
  fill(255, 0, 0, abs(100-(3*frameCount)%100));
  rect(1*(mouseX+173), (1*(mouseY-55)-(3*frameCount)%60), 8, 8);
  fill(0, 0, 0, abs(100-(3*frameCount)%100));
  rect(1*(mouseX+154), (1*(mouseY-55)-(3*frameCount)%73), 8, 8);
  fill(255, 0, 0, abs(100-(3*frameCount)%100));
  rect(1*(mouseX+158), (1*(mouseY-55)-(3*frameCount)%80), 8, 8);
  fill(255, 0, 0, abs(100-(3*frameCount)%100));
  rect(1*(mouseX+163), (1*(mouseY-55)-(3*frameCount)%60), 8, 8);
  //fire on candles (left1)

  noStroke();

  fill(255, 0, abs(100-(3*frameCount)%100));
  rect(0.5*(mouseX-222), (0.60*(mouseY+40.6666)-(3*frameCount)%45), 10, 10);
  fill(255, 255, 0, 225);
  rect(0.5*(mouseX-213), (0.60*(mouseY+40.6666)-(3*frameCount)%13), 10, 10);
  fill(255, 255, 0, 225);
  rect(0.5*(mouseX-219), (0.60*(mouseY+40.6666)-(3*frameCount)%25), 10, 10);
  fill(255, 0, 0, abs(100-(3*frameCount)%100));
  rect(0.5*(mouseX-220), (0.60*(mouseY+40.6666)-(3*frameCount)%50), 10, 10);
  fill(0, 0, 0, abs(100-(3*frameCount)%100));
  rect(0.5*(mouseX-222), (0.60*(mouseY+40.6666)-(3*frameCount)%80), 10, 10);
  fill(255, 0, 0, abs(100-(3*frameCount)%100));
  rect(0.5*(mouseX-210), (0.60*(mouseY+40.6666)-(3*frameCount)%80), 8, 8);
  fill(255, 0, 0, abs(100-(3*frameCount)%100));
  rect(0.5*(mouseX-235), (0.60*(mouseY+40.6666)-(3*frameCount)%60), 8, 8);


  //fire on candles (left2)

  noStroke();

  fill(255, 255, 0, 225);
  rect(0.75*(mouseX-170.5), (0.80*(mouseY-18.75)-(3*frameCount)%13), 10, 10);
  fill(255, 255, 0, 225);
  rect(0.75*(mouseX-167.5), (0.80*(mouseY-18.75)-(3*frameCount)%25), 10, 10);
  fill(255, 0, 0, abs(100-(3*frameCount)%100));
  rect(0.75*(mouseX-173.5), (0.80*(mouseY-18.75)-(3*frameCount)%50), 10, 10);
  fill(0, 0, 0, abs(100-(3*frameCount)%100));
  rect(0.75*(mouseX-180.5), (0.80*(mouseY-18.75)-(3*frameCount)%80), 10, 10);
  fill(255, 0, 0, abs(100-(3*frameCount)%100));
  rect(0.75*(mouseX-177.5), (0.80*(mouseY-18.75)-(3*frameCount)%75), 10, 10);

  //fire on candles (left3)

  noStroke();

  fill(255, 255, 0, 225);
  rect(1*(mouseX-161), (1*(mouseY-55)-(3*frameCount)%34), 8, 8);
  fill(255, 255, 0, 225);
  rect(1*(mouseX-161), (1*(mouseY-55)-(3*frameCount)%23), 8, 8);
  fill(255, 0, 0, abs(100-(3*frameCount)%100));
  rect(1*(mouseX-167), (1*(mouseY-55)-(3*frameCount)%60), 8, 8);
  fill(0, 0, 0, abs(100-(3*frameCount)%100));
  rect(1*(mouseX-163), (1*(mouseY-55)-(3*frameCount)%73), 8, 8);
  fill(255, 0, 0, abs(100-(3*frameCount)%100));
  rect(1*(mouseX-167), (1*(mouseY-55)-(3*frameCount)%80), 8, 8);
  fill(255, 0, 0, abs(100-(3*frameCount)%100));
  rect(1*(mouseX-170), (1*(mouseY-55)-(3*frameCount)%60), 8, 8);


  //gatekeeper
  noStroke();
  rectMode(CENTER);

  //target
  fill(255,0,0,200);
  triangle((mouseX-2)-(35*sin(frameCount*0.05f)),mouseY-100,(mouseX+2)+(35*sin(frameCount*0.05f)),mouseY-100,mouseX,mouseY-40);



  //gatekeeper_helmet
  ellipseMode(CENTER);

  fill(204, 204, 204);
  quad(0.95f*(mouseX)-5+(2*sin(frameCount*0.2f)), mouseY-15+(2*cos(frameCount*0.2f)), 0.95f*(mouseX)+25.25f+(2*sin(frameCount*0.2f)), mouseY-15+(2*cos(frameCount*0.2f)), 0.95f*(mouseX)+27.1f+(2*sin(frameCount*0.2f)), mouseY+15+(2*cos(frameCount*0.2f)), 0.95f*(mouseX)-7.1f+(2*sin(frameCount*0.2f)), mouseY+15+(2*cos(frameCount*0.2f)));
  fill(237, 237, 237);
  ellipse(0.95f*(mouseX)+10+(2*sin(frameCount*0.2f)), mouseY-15+(2*cos(frameCount*0.2f)), 30, 5);
  fill(0, 0, 0);
  rect(0.95f*(mouseX+(2*sin(frameCount*0.2f)))+10, mouseY-6+(2*cos(frameCount*0.2f)), 18, 4);
  rect(0.95f*(mouseX+(2*sin(frameCount*0.2f)))+10, mouseY+4+(2*cos(frameCount*0.2f)), 4, 18);
  fill(204, 204, 204);
  ellipse(0.95f*(mouseX+(2*sin(frameCount*0.2f)))+10, mouseY+15+(2*cos(frameCount*0.2f)), 30, 5);



  //gatekeeper arms&legs
  stroke(190, 190, 190);
  fill(190, 190, 190);
  quad((0.95f*(mouseX)-23.25f)+(2*sin(frameCount*0.2f)), mouseY+20+(2*cos(frameCount*0.2f)), 0.95f*(mouseX)-23.25f+(2*sin(frameCount*0.2f)), mouseY+110+(2*cos(frameCount*0.2f)), 0.95f*(mouseX)-29.9f+(2*sin(frameCount*0.2f)), mouseY+100+(2*cos(frameCount*0.2f)), 0.95f*(mouseX)-29.9f+(2*sin(frameCount*0.2f)), mouseY+30+(2*cos(frameCount*0.2f)));//left arm
  quad((0.95f*(mouseX)+43.25f)+(2*sin(frameCount*0.2f)), mouseY+20+(2*cos(frameCount*0.2f)), 0.95f*(mouseX)+49.9f+(2*sin(frameCount*0.2f)), mouseY+30+(2*cos(frameCount*0.2f)), 0.95f*(mouseX)+49.9f+(2*sin(frameCount*0.2f)), mouseY+100+(2*cos(frameCount*0.2f)), 0.95f*(mouseX)+43.25f+(2*sin(frameCount*0.2f)), mouseY+110+(2*cos(frameCount*0.2f)));//right arm
  quad(0.95f*(mouseX)+43.25f+(2*sin(frameCount*0.2f)), mouseY+20+(2*cos(frameCount*0.2f)), 0.95f*(mouseX)+43.25f+(2*sin(frameCount*0.2f)), mouseY+110+(2*cos(frameCount*0.2f)), 0.95f*(mouseX)-23.25f+(2*sin(frameCount*0.2f)), mouseY+20+(2*cos(frameCount*0.2f)), 0.95f*(mouseX)-23.25f+(2*sin(frameCount*0.2f)), mouseY+110+(2*cos(frameCount*0.2f)));
  rect(0.95f*(mouseX)-7.1f+(2*sin(frameCount*0.2f)), mouseY+170+(2*cos(frameCount*0.2f)), 18, 100);//legs
  rect(0.95f*(mouseX)+27.1f+(2*sin(frameCount*0.2f)), mouseY+170+(2*cos(frameCount*0.2f)), 18, 100);

  //gatekeeper body
  noStroke();
  fill(230, 230, 230);
  quad(0.95f*(mouseX)-23.25f+(2*sin(frameCount*0.2f)), mouseY+20+(2*cos(frameCount*0.2f)), 0.95f*(mouseX)+43.25f+(2*sin(frameCount*0.2f)), mouseY+20+(2*cos(frameCount*0.2f)), 0.95f*(mouseX)+39.5f+(2*sin(frameCount*0.2f)), mouseY+80+(2*cos(frameCount*0.2f)), 0.95f*(mouseX)-18.5f+(2*sin(frameCount*0.2f)), mouseY+80+(2*cos(frameCount*0.2f)));
  quad(0.95f*(mouseX)-23.25f+(2*sin(frameCount*0.2f)), mouseY+20+(2*cos(frameCount*0.2f)), 0.95f*(mouseX)-7.1f+(2*sin(frameCount*0.2f)), mouseY+15+(2*cos(frameCount*0.2f)), 0.95f*(mouseX)+27.1f+(2*sin(frameCount*0.2f)), mouseY+15+(2*cos(frameCount*0.2f)), 0.95f*(mouseX)+43.25f+(2*sin(frameCount*0.2f)), mouseY+20+(2*cos(frameCount*0.2f)));
  fill(230, 230, 230);
  quad(0.95f*(mouseX)-18.5f+(2*sin(frameCount*0.2f)), mouseY+84+(2*cos(frameCount*0.2f)), 0.95f*(mouseX)+39.5f+(2*sin(frameCount*0.2f)), mouseY+84+(2*cos(frameCount*0.2f)), 0.95f*(mouseX)+43.25f+(2*sin(frameCount*0.2f)), mouseY+170+(2*cos(frameCount*0.2f)), 0.95f*(mouseX)-23.25f+(2*sin(frameCount*0.2f)), mouseY+170+(2*cos(frameCount*0.2f)));  
  fill(200, 0, 0);
  rect(0.95f*(mouseX+11.5f)+(2*sin(frameCount*0.2f)), mouseY+82+(2*cos(frameCount*0.2f)), 54, 4);
  rect(0.95f*(mouseX)+32.82f+(2*sin(frameCount*0.2f)), mouseY+96+(2*cos(frameCount*0.2f)), 4, 28);

  //SWORD
  noStroke();
  fill(255);
  triangle(280+(10*sin(frameCount*0.02)), 280+(25*cos(frameCount*0.09)), 355+(10*sin(frameCount*0.02)), 305+(25*cos(frameCount*0.09)), 305+(10*sin(frameCount*0.02)), 355+(25*cos(frameCount*0.09)));
  stroke(200, 200, 200);
  fill(200, 200, 200);
  triangle(280+(10*sin(frameCount*0.02)), 280+(25*cos(frameCount*0.09)), 305+(10*sin(frameCount*0.02)), 355+(25*cos(frameCount*0.09)), 310+(10*sin(frameCount*0.02)), 320+(25*cos(frameCount*0.09)));
  noStroke();
  fill(255);
  quad(305+(10*sin(frameCount*0.02)), 355+(25*cos(frameCount*0.09)), 355+(10*sin(frameCount*0.02)), 305+(25*cos(frameCount*0.09)), 450+(10*sin(frameCount*0.02)), 400+(25*cos(frameCount*0.09)), 350+(10*sin(frameCount*0.02)), 400+(25*cos(frameCount*0.09)));
  stroke(200, 200, 200);
  fill(200, 200, 200);
  quad(305+(10*sin(frameCount*0.02)), 355+(25*cos(frameCount*0.09)), 310+(10*sin(frameCount*0.02)), 320+(25*cos(frameCount*0.09)), 380+(10*sin(frameCount*0.02)), 400+(25*cos(frameCount*0.09)), 350+(10*sin(frameCount*0.02)), 400+(25*cos(frameCount*0.09)));

  //helmet_top
  noStroke();
  fill(214, 214, 214);
  triangle(-30, 0, 430, 0, 200, 100);
  fill(0);
  triangle(-10, 0, 410, 0, 200, 80);
  fill(242, 242, 242);
  triangle(200, 0, 430, 0, 200, 100);
  fill(67, 67, 67);
  triangle(200, 0, 410, 0, 200, 80);
  fill(54, 54, 54);
  triangle(-10, 0, 200, 0, 200, 80);

  //helmet_left
  noStroke();
  fill(212, 212, 212);
  triangle(-60, 220, 65, 270, 65, 600);
  fill(89, 89, 89);
  triangle(-100, 220, 65, 280, 65, 600);
  fill(67, 67, 67);
  triangle(-180, 220, 45, 300, 45, 600);


  //helmet_right
  fill(242, 242, 242);
  triangle(460, 220, 335, 270, 335, 600);
  fill(79, 79, 79);
  triangle(500, 220, 335, 280, 335, 600);
  fill(53, 53, 53);
  triangle(580, 220, 355, 300, 355, 600);


}
void mousePressed() {
  frameRate(5);

  //gatekeeper weapon
  ellipseMode(CENTER);
  fill(160, 128, 68);
  ellipse(0.95f*(mouseX)-13.1f, mouseY+60, 100, 100);
  fill(232, 232, 232);
  ellipse(0.95f*(mouseX)-13.1f, mouseY+60, 90, 90);
  fill(160, 27, 30);
  rect(0.95f*(mouseX)-13.1f, mouseY+60, 7, 50);
  rect(0.95f*(mouseX)-13.1f, mouseY+60, 50, 7);


  //aimpoint

  fill(230, 230, 230, 150);
  quad(200, 200-25, 200+4, 200-8, 200, 200-5, 200-4, 200-8);
  quad(200, 200+25, 200+4, 200+8, 200, 200+5, 200-4, 200+8);
  quad(200-25, 200, 200-8, 200+4, 200-5, 200, 200-8, 200-4);
  quad(200+25, 200, 200+8, 200+4, 200+5, 200, 200+8, 200-4);

    //attack
  fill(255, 255, 255);
  triangle(202, 208, 203, 222, 222, 209);
  quad(222, 209, 203, 222, 350, 400, 500, 400);
  fill(230, 230, 230);
  quad(200, 350, 350, 200, 370, 220, 220, 370);
  fill(100, 100, 100);
  quad(210, 360, 360, 210, 370, 220, 220, 370);
  fill(217, 217, 217);
  quad(285, 285, 355, 245, 400, 400, 265, 375);
  quad(265,375,355,245,700,285,285,700);


  
  
    //helmet_right
  fill(242, 242, 242);
  triangle(460, 220, 335, 270, 335, 600);
  fill(79, 79, 79);
  triangle(500, 220, 335, 280, 335, 600);
  fill(53, 53, 53);
  triangle(580, 220, 355, 300, 355, 600);

  
  fill(160, 27, 30, 255);
  rect(mouseX+8, (0.60f*(mouseY+250.6666f)-(1*frameCount)%100), 15, 3);
  rect(mouseX+18, (0.60f*(mouseY+250.6666f)-(1*frameCount)%100), 3, 15);
  
  

  println("I CAN DO THIS ALL DAY");
}


void keyPressed() {
  println("YOU SHALL NOT PASS");
  
  frameRate(5);
  
    noStroke();
  rectMode(CENTER); 
  fill(255,255,255);
  rect(200, 200,300,200);
  fill(0,0,0);
  rect(200, 200,296,196);
  fill(255,255,255);
  rect(200+30,200,300,200);
  fill(0,0,0);
  rect(200+30, 200,296,196);
  rectMode(CORNER);
  fill(255,255,255);
  rect(200-150,200-100,30,30);
  fill(0,0,0);
  rect(200-148,200-98,50,26);
  
  fill(255,255,255);
  rect(200-140,200-88,15,7);
  rect(200-140,200-58,15,7);
  rect(200-140,200-28,15,7);
  rect(200-140,200+2,15,7);
  rect(200-140,200+32,15,7);
  rect(200-140,200+62,15,7);
  
  stroke(255);
  line(200-30,200-40,200-20,200-40);
  line(200-30,200-30,200-20,200-30);
  line(200-30,200-20,200-20,200-20);
  line(200-30,200-40,200-30,200-20);
  
  line(200-15,200-40,200-5,200-20);
  line(200-5,200-40,200-15,200-20);
  
  line(200,200-40,200,200-20);
  
  line(200+5,200-40,200+15,200-40);
  line(200+10,200-40,200+10,200-20);
  
  line(200-40, 200+20, 200-40,200+40);
  line(200-25, 200+20, 200-25,200+40);
  line(200-25, 200+40, 200-40,200+20);
  
  line(200-15, 200+20,200-15, 200+40);
  line(200-5, 200+20,200-5, 200+40);
  line(200-15, 200+20,200-5, 200+20);
  line(200-15, 200+40,200-5, 200+40);
  line(200-40, 200+44,200-5, 200+44);
  
  line(200+10+40, 200+20, 200+10+40,200+40);
  line(200+25+40, 200+20, 200+25+40,200+40);
  line(200+25+40, 200+40, 200+10+40,200+20);
  
  line(200+35+40, 200+20,200+35+40, 200+40);
  line(200+45+40, 200+20,200+45+40, 200+40);
  line(200+35+40, 200+20,200+45+40, 200+20);
  line(200+35+40, 200+40,200+45+40, 200+40);
  line(200+10+40, 200+44,200+45+40, 200+44);

}