Your browser does not support the canvas tag.

previous        Show / Hide Source        Download        next
/* Topdecking Lethal
Introduction to Media Computation
Date: 18/09/17 [DD/MM/YY]
Instructor: Nicolas Hesler
Created by: Christian Pamaong

Passive Portion:
-Bushes/Leaves will sway left and right to imitate a consistent breeze of wind
-Characters of interest will imitate breathing, slowly moving up and down (Each body part moves independantly)

Interactive Portion:
-MouseX determines x-position (scrolling) && hue of enviroment (Greater hues of red and black as MouseX increases)
-MouseY determines y-position (scrolling)

*/

void setup()
{
  //Set canvas size
  size(400,400);
  noStroke();
  smooth();
  //noCursor();
  
}

void draw()
{
  //Refresh frame rate when updated
  frameRate(60);
  
  background(0,0,0);
  //Determine rectangular placement type
  rectMode(CORNERS);
  
  
  
  /* BACKGROUND (Trees LEFT, Leaves, Bushes LEFT, etc.)
  - Split into 3 layers (BG_close, BG_center, BG_far)
  
  Parallax Multipliers:
  *MULTIPLY X FACTOR BY 3.57 LATER [DONE]
  Far Tree     x: 0.286 , y: 0.05   
  Far Bush     x: 0.358  , y: 0.06  sin: 0.04
  Center Tree  x: 0.464 , y: 0.08
  Center Bush  x: 0.606 , y: 0.11   sin: 0.05
  Close Tree   x: 0.785 , y: 0.15
  Close Bush   x: 0.88 ,  y: 0.2    sin: 0.07
  
  
  */
  
  //Far Trees LEFT
  fill(95 - mouseX*0.15,49 - mouseX*0.15,27 - mouseX*0.15);
  rect(20 - mouseX*0.286,-40 - mouseY*0.06,35 - mouseX*0.286,100 - mouseY*0.05);
  rect(50 - mouseX*0.286,-40 - mouseY*0.06,65 - mouseX*0.286,100 - mouseY*0.05);
  rect(110 - mouseX*0.286,-40 - mouseY*0.06,125 - mouseX*0.286,100 - mouseY*0.05);
  rect(180 - mouseX*0.286,-40 - mouseY*0.06,195 - mouseX*0.286,100 - mouseY*0.05);
  rect(230 - mouseX*0.286,-40 - mouseY*0.06,245 - mouseX*0.286,100 - mouseY*0.05);
  rect(290 - mouseX*0.286,-40 - mouseY*0.06,305 - mouseX*0.286,100 - mouseY*0.05);
  rect(340 - mouseX*0.286,-40 - mouseY*0.06,355 - mouseX*0.286,100 - mouseY*0.05);
  rect(380 - mouseX*0.286,-40 - mouseY*0.06, 395 - mouseX*0.286,100 - mouseY*0.05);
  //Far Trees RIGHT
  fill(95 - mouseX*0.15,49 - mouseX*0.15,27 - mouseX*0.15);
  rect(20 - mouseX*0.286,-40 - mouseY*0.06,35 - mouseX*0.286,100 - mouseY*0.05);
  rect(50 - mouseX*0.286,-40 - mouseY*0.06,65 - mouseX*0.286,100 - mouseY*0.05);
  rect(110 - mouseX*0.286,-40 - mouseY*0.06,125 - mouseX*0.286,100 - mouseY*0.05);
  rect(180 - mouseX*0.286,-40 - mouseY*0.06,195 - mouseX*0.286,100 - mouseY*0.05);
  rect(230 - mouseX*0.286,-40 - mouseY*0.06,245 - mouseX*0.286,100 - mouseY*0.05);
  rect(290 - mouseX*0.286,-40 - mouseY*0.06,305 - mouseX*0.286,100 - mouseY*0.05);
  rect(340 - mouseX*0.286,-40 - mouseY*0.06,355 - mouseX*0.286,100 - mouseY*0.05);
  rect(380 - mouseX*0.286,-40 - mouseY*0.06, 395 - mouseX*0.286,100 - mouseY*0.05);
  
  //Far Bushes LEFT
  fill(43 - mouseX*0.15,88 - mouseX*0.2,25 - mouseX*0.15);
  beginShape();
    //Outside vertexes (LEFT)
    vertex(-30 - mouseX*0.358,160 - mouseY*0.06);
    vertex(-30 - mouseX*0.358,90 - mouseY*0.06);
    
    vertex(5 - mouseX*0.358 + sin(frameCount*0.04),95 - mouseY*0.06);
    vertex(10 - mouseX*0.358 + sin(frameCount*0.04),78 - mouseY*0.06);
    vertex(15 - mouseX*0.358 + sin(frameCount*0.04),88 - mouseY*0.06);
    vertex(40 - mouseX*0.358,100 - mouseY*0.06);
    vertex(70 - mouseX*0.358 - sin(frameCount*0.04),90 - mouseY*0.06);
    vertex(75 - mouseX*0.358 - sin(frameCount*0.04),80 - mouseY*0.06);
    vertex(85 - mouseX*0.358 - sin(frameCount*0.04),93 - mouseY*0.06);
    vertex(110 - mouseX*0.358,88 - mouseY*0.06);
    vertex(120 - mouseX*0.358 + sin(frameCount*0.04),78 - mouseY*0.06);
    vertex(125 - mouseX*0.358 + sin(frameCount*0.04),90 - mouseY*0.06);
    vertex(150 - mouseX*0.358 + sin(frameCount*0.04),83 - mouseY*0.06);
    vertex(180 - mouseX*0.358,93 - mouseY*0.06);
    vertex(205 - mouseX*0.358 - sin(frameCount*0.04),80 - mouseY*0.06);
    vertex(230 - mouseX*0.358 - sin(frameCount*0.04),90 - mouseY*0.06);
    vertex(260 - mouseX*0.358 - sin(frameCount*0.04),80 - mouseY*0.06);
    vertex(280 - mouseX*0.358,85 - mouseY*0.06);
    vertex(290 - mouseX*0.358 + sin(frameCount*0.04),80 - mouseY*0.06);
    vertex(310 - mouseX*0.358 + sin(frameCount*0.04),95 - mouseY*0.06);
    vertex(330 - mouseX*0.358 + sin(frameCount*0.04),90 - mouseY*0.06);
    vertex(350 - mouseX*0.358,90 - mouseY*0.06);
    vertex(380 - mouseX*0.358 - sin(frameCount*0.04),80 - mouseY*0.06);
    vertex(400 - mouseX*0.358 - sin(frameCount*0.04),90 - mouseY*0.06);
    
    //Outside vertexes (RIGHT)
    vertex(440 - mouseX*0.358,90 - mouseY*0.06);
    vertex(440 - mouseX*0.358,160 - mouseY*0.06);
  endShape(CLOSE);
  //Far Bushes RIGHT
  fill(43 - mouseX*0.15,88 - mouseX*0.2,25 - mouseX*0.15);
  beginShape();
    //Outside vertexes (LEFT)
    vertex(400 + -30 - mouseX*0.358,160 - mouseY*0.06);
    vertex(400 + -30 - mouseX*0.358,90 - mouseY*0.06);
    
    vertex(400 + 5 - mouseX*0.358 + sin(frameCount*0.04),95 - mouseY*0.06);
    vertex(400 + 10 - mouseX*0.358 + sin(frameCount*0.04),78 - mouseY*0.06);
    vertex(400 + 15 - mouseX*0.358 + sin(frameCount*0.04),88 - mouseY*0.06);
    vertex(400 + 40 - mouseX*0.358,100 - mouseY*0.06);
    vertex(400 + 70 - mouseX*0.358 - sin(frameCount*0.04),90 - mouseY*0.06);
    vertex(400 + 75 - mouseX*0.358 - sin(frameCount*0.04),80 - mouseY*0.06);
    vertex(400 + 85 - mouseX*0.358 - sin(frameCount*0.04),93 - mouseY*0.06);
    vertex(400 + 110 - mouseX*0.358,88 - mouseY*0.06);
    vertex(400 + 120 - mouseX*0.358 + sin(frameCount*0.04),78 - mouseY*0.06);
    vertex(400 + 125 - mouseX*0.358 + sin(frameCount*0.04),90 - mouseY*0.06);
    vertex(400 + 150 - mouseX*0.358 + sin(frameCount*0.04),83 - mouseY*0.06);
    vertex(400 + 180 - mouseX*0.358,93 - mouseY*0.06);
    vertex(400 + 205 - mouseX*0.358 - sin(frameCount*0.04),80 - mouseY*0.06);
    vertex(400 + 230 - mouseX*0.358 - sin(frameCount*0.04),90 - mouseY*0.06);
    vertex(400 + 260 - mouseX*0.358 - sin(frameCount*0.04),80 - mouseY*0.06);
    vertex(400 + 280 - mouseX*0.358,85 - mouseY*0.06);
    vertex(400 + 290 - mouseX*0.358 + sin(frameCount*0.04),80 - mouseY*0.06);
    vertex(400 + 310 - mouseX*0.358 + sin(frameCount*0.04),95 - mouseY*0.06);
    vertex(400 + 330 - mouseX*0.358 + sin(frameCount*0.04),90 - mouseY*0.06);
    vertex(400 + 350 - mouseX*0.358,90 - mouseY*0.06);
    vertex(400 + 380 - mouseX*0.358 - sin(frameCount*0.04),80 - mouseY*0.06);
    vertex(400 + 400 - mouseX*0.358 - sin(frameCount*0.04),90 - mouseY*0.06);
    
    //Outside vertexes (RIGHT)
    vertex(400 + 440 - mouseX*0.358,90 - mouseY*0.06);
    vertex(400 + 440 - mouseX*0.358,160 - mouseY*0.06);
  endShape(CLOSE);
  
  //Center Trees LEFT
  fill(126 - mouseX*0.15,65 - mouseX*0.15,37 - mouseX*0.15);
  rect(-20 - mouseX*0.464,-80 - mouseY*0.08,10 - mouseX*0.464,160 - mouseY*0.08);
  rect(80 - mouseX*0.464,-80 - mouseY*0.08,110 - mouseX*0.464,160 - mouseY*0.08);
  rect(190 - mouseX*0.464,-80 - mouseY*0.08,220 - mouseX*0.464,160 - mouseY*0.08);
  rect(300 - mouseX*0.464,-80 - mouseY*0.08,330 - mouseX*0.464,160 - mouseY*0.08);
  rect(380 - mouseX*0.464,-80 - mouseY*0.08,410 - mouseX*0.464,160 - mouseY*0.08);
  //Center Trees RIGHT
  fill(126 - mouseX*0.15,65 - mouseX*0.15,37 - mouseX*0.15);
  rect(-20 - mouseX*0.464,-80 - mouseY*0.08,10 - mouseX*0.464,160 - mouseY*0.08);
  rect(80 - mouseX*0.464,-80 - mouseY*0.08,110 - mouseX*0.464,160 - mouseY*0.08);
  rect(190 - mouseX*0.464,-80 - mouseY*0.08,220 - mouseX*0.464,160 - mouseY*0.08);
  rect(300 - mouseX*0.464,-80 - mouseY*0.08,330 - mouseX*0.464,160 - mouseY*0.08);
  rect(380 - mouseX*0.464,-80 - mouseY*0.08,410 - mouseX*0.464,160 - mouseY*0.08);
  
  //Center Bushes LEFT
  fill(48 - mouseX*0.15,127 - mouseX*0.2,15 - mouseX*0.15);
  beginShape();
    vertex(-30 - mouseX*0.606,200 - mouseY*0.11);
    vertex(-30 - mouseX*0.606,120 - mouseY*0.11);
    
    vertex(0 - mouseX*0.606 - sin(frameCount*0.05),130 - mouseY*0.11);
    vertex(40 - mouseX*0.606 - sin(frameCount*0.05),115 - mouseY*0.11);
    vertex(60 - mouseX*0.606 - sin(frameCount*0.05),125 - mouseY*0.11);
    vertex(70 - mouseX*0.606,100 - mouseY*0.11);
    vertex(80 - mouseX*0.606 + sin(frameCount*0.05),120 - mouseY*0.11);
    vertex(90 - mouseX*0.606 + sin(frameCount*0.05),130 - mouseY*0.11);
    vertex(100 - mouseX*0.606 + sin(frameCount*0.05),110 - mouseY*0.11);
    vertex(120 - mouseX*0.606,100 - mouseY*0.11);
    vertex(110 - mouseX*0.606 - sin(frameCount*0.05),120 - mouseY*0.11);
    vertex(120 - mouseX*0.606 - sin(frameCount*0.05),130 - mouseY*0.11);
    vertex(150 - mouseX*0.606 - sin(frameCount*0.05),105 - mouseY*0.11);
    vertex(190 - mouseX*0.606,130 - mouseY*0.11);
    vertex(200 - mouseX*0.606 + sin(frameCount*0.05),120 - mouseY*0.11);
    vertex(190 - mouseX*0.606 + sin(frameCount*0.05),100 - mouseY*0.11);
    vertex(220 - mouseX*0.606 + sin(frameCount*0.05),120 - mouseY*0.11);
    vertex(222 - mouseX*0.606,130 - mouseY*0.11);
    vertex(230 - mouseX*0.606 - sin(frameCount*0.05),130 - mouseY*0.11);
    vertex(240 - mouseX*0.606 - sin(frameCount*0.05),110 - mouseY*0.11);
    vertex(260 - mouseX*0.606 - sin(frameCount*0.05),120 - mouseY*0.11);
    vertex(280 - mouseX*0.606,110 - mouseY*0.11);
    vertex(295 - mouseX*0.606 + sin(frameCount*0.05),120 - mouseY*0.11);
    vertex(305 - mouseX*0.606 + sin(frameCount*0.05),120 - mouseY*0.11);
    vertex(313 - mouseX*0.606 + sin(frameCount*0.05),100 - mouseY*0.11);
    vertex(330 - mouseX*0.606,120 - mouseY*0.11);
    vertex(330 - mouseX*0.606 - sin(frameCount*0.05),130 - mouseY*0.11);
    vertex(340 - mouseX*0.606 - sin(frameCount*0.05),115 - mouseY*0.11);
    vertex(363 - mouseX*0.606 - sin(frameCount*0.05),108 - mouseY*0.11);
    vertex(350 - mouseX*0.606,120 - mouseY*0.11);
    vertex(370 - mouseX*0.606 + sin(frameCount*0.05),130 - mouseY*0.11);
    vertex(400 - mouseX*0.606 + sin(frameCount*0.05),120 - mouseY*0.11);
    
    vertex(440 - mouseX*0.606,120 - mouseY*0.11);
    vertex(440 - mouseX*0.606,200 - mouseY*0.11);
  endShape(CLOSE);
  //Center Bushes RIGHT
  fill(48 - mouseX*0.15,127 - mouseX*0.2,15 - mouseX*0.15);
  beginShape();
    vertex(400 + -30 - mouseX*0.606,200 - mouseY*0.11);
    vertex(400 + -30 - mouseX*0.606,120 - mouseY*0.11);
    
    vertex(400 + 0 - mouseX*0.606 - sin(frameCount*0.05),130 - mouseY*0.11);
    vertex(400 + 40 - mouseX*0.606 - sin(frameCount*0.05),115 - mouseY*0.11);
    vertex(400 + 60 - mouseX*0.606 - sin(frameCount*0.05),125 - mouseY*0.11);
    vertex(400 + 70 - mouseX*0.606,100 - mouseY*0.11);
    vertex(400 + 80 - mouseX*0.606 + sin(frameCount*0.05),120 - mouseY*0.11);
    vertex(400 + 90 - mouseX*0.606 + sin(frameCount*0.05),130 - mouseY*0.11);
    vertex(400 + 100 - mouseX*0.606 + sin(frameCount*0.05),110 - mouseY*0.11);
    vertex(400 + 120 - mouseX*0.606,100 - mouseY*0.11);
    vertex(400 + 110 - mouseX*0.606 - sin(frameCount*0.05),120 - mouseY*0.11);
    vertex(400 + 120 - mouseX*0.606 - sin(frameCount*0.05),130 - mouseY*0.11);
    vertex(400 + 150 - mouseX*0.606 - sin(frameCount*0.05),105 - mouseY*0.11);
    vertex(400 + 190 - mouseX*0.606,130 - mouseY*0.11);
    vertex(400 + 200 - mouseX*0.606 + sin(frameCount*0.05),120 - mouseY*0.11);
    vertex(400 + 190 - mouseX*0.606 + sin(frameCount*0.05),100 - mouseY*0.11);
    vertex(400 + 220 - mouseX*0.606 + sin(frameCount*0.05),120 - mouseY*0.11);
    vertex(400 + 222 - mouseX*0.606,130 - mouseY*0.11);
    vertex(400 + 230 - mouseX*0.606 - sin(frameCount*0.05),130 - mouseY*0.11);
    vertex(400 + 240 - mouseX*0.606 - sin(frameCount*0.05),110 - mouseY*0.11);
    vertex(400 + 260 - mouseX*0.606 - sin(frameCount*0.05),120 - mouseY*0.11);
    vertex(400 + 280 - mouseX*0.606,110 - mouseY*0.11);
    vertex(400 + 295 - mouseX*0.606 + sin(frameCount*0.05),120 - mouseY*0.11);
    vertex(400 + 305 - mouseX*0.606 + sin(frameCount*0.05),120 - mouseY*0.11);
    vertex(400 + 313 - mouseX*0.606 + sin(frameCount*0.05),100 - mouseY*0.11);
    vertex(400 + 330 - mouseX*0.606,120 - mouseY*0.11);
    vertex(400 + 330 - mouseX*0.606 - sin(frameCount*0.05),130 - mouseY*0.11);
    vertex(400 + 340 - mouseX*0.606 - sin(frameCount*0.05),115 - mouseY*0.11);
    vertex(400 + 363 - mouseX*0.606 - sin(frameCount*0.05),108 - mouseY*0.11);
    vertex(400 + 350 - mouseX*0.606,120 - mouseY*0.11);
    vertex(400 + 370 - mouseX*0.606 + sin(frameCount*0.05),130 - mouseY*0.11);
    vertex(400 + 400 - mouseX*0.606 + sin(frameCount*0.05),120 - mouseY*0.11);
    
    vertex(400 + 440 - mouseX*0.606,120 - mouseY*0.11);
    vertex(400 + 440 - mouseX*0.606,200 - mouseY*0.11);
  endShape(CLOSE);
  
  //Close Trees LEFT
  fill(144 - mouseX*0.15,73 - mouseX*0.15,42 - mouseX*0.15);
  beginShape();
    vertex(5 - mouseX*0.785,200 - mouseY*0.15);
    vertex(5 - mouseX*0.785,180 - mouseY*0.15);
    vertex(20 - mouseX*0.785,140 - mouseY*0.15);
    vertex(20 - mouseX*0.785,-80 - mouseY*0.15);
    vertex(60 - mouseX*0.785,-80 - mouseY*0.15);
    vertex(60 - mouseX*0.785,140 - mouseY*0.15);
    vertex(75 - mouseX*0.785,180 - mouseY*0.15);
    vertex(75 - mouseX*0.785,200 - mouseY*0.15);
  endShape(CLOSE);
  
  beginShape();
    vertex(115 - mouseX*0.785,200 - mouseY*0.15);
    vertex(115 - mouseX*0.785,180 - mouseY*0.15);
    vertex(130 - mouseX*0.785,140 - mouseY*0.15);
    vertex(130 - mouseX*0.785,-80 - mouseY*0.15);
    vertex(170 - mouseX*0.785,-80 - mouseY*0.15);
    vertex(170 - mouseX*0.785,140 - mouseY*0.15);
    vertex(185 - mouseX*0.785,180 - mouseY*0.15);
    vertex(185 - mouseX*0.785,200 - mouseY*0.15);
  endShape(CLOSE);
  
  beginShape();
    vertex(225 - mouseX*0.785,200 - mouseY*0.15);
    vertex(225 - mouseX*0.785,180 - mouseY*0.15);
    vertex(240 - mouseX*0.785,140 - mouseY*0.15);
    vertex(240 - mouseX*0.785,-80 - mouseY*0.15);
    vertex(280 - mouseX*0.785,-80 - mouseY*0.15);
    vertex(280 - mouseX*0.785,140 - mouseY*0.15);
    vertex(295 - mouseX*0.785,180 - mouseY*0.15);
    vertex(295 - mouseX*0.785,200 - mouseY*0.15);
  endShape(CLOSE);
  
  beginShape();
    vertex(345 - mouseX*0.785,200 - mouseY*0.15);
    vertex(345 - mouseX*0.785,180 - mouseY*0.15);
    vertex(360 - mouseX*0.785,140 - mouseY*0.15);
    vertex(360 - mouseX*0.785,-80 - mouseY*0.15);
    vertex(400 - mouseX*0.785,-80 - mouseY*0.15);
    vertex(400 - mouseX*0.785,140 - mouseY*0.15);
    vertex(415 - mouseX*0.785,180 - mouseY*0.15);
    vertex(415 - mouseX*0.785,200 - mouseY*0.15);
  endShape(CLOSE);
  //Close Trees RIGHT
  fill(144 - mouseX*0.15,73 - mouseX*0.15,42 - mouseX*0.15);
  beginShape();
    vertex(400 + 5 - mouseX*0.785,200 - mouseY*0.15);
    vertex(400 + 5 - mouseX*0.785,180 - mouseY*0.15);
    vertex(400 + 20 - mouseX*0.785,140 - mouseY*0.15);
    vertex(400 + 20 - mouseX*0.785,-80 - mouseY*0.15);
    vertex(400 + 60 - mouseX*0.785,-80 - mouseY*0.15);
    vertex(400 + 60 - mouseX*0.785,140 - mouseY*0.15);
    vertex(400 + 75 - mouseX*0.785,180 - mouseY*0.15);
    vertex(400 + 75 - mouseX*0.785,200 - mouseY*0.15);
  endShape(CLOSE);
  
  beginShape();
    vertex(400 + 115 - mouseX*0.785,200 - mouseY*0.15);
    vertex(400 + 115 - mouseX*0.785,180 - mouseY*0.15);
    vertex(400 + 130 - mouseX*0.785,140 - mouseY*0.15);
    vertex(400 + 130 - mouseX*0.785,-80 - mouseY*0.15);
    vertex(400 + 170 - mouseX*0.785,-80 - mouseY*0.15);
    vertex(400 + 170 - mouseX*0.785,140 - mouseY*0.15);
    vertex(400 + 185 - mouseX*0.785,180 - mouseY*0.15);
    vertex(400 + 185 - mouseX*0.785,200 - mouseY*0.15);
  endShape(CLOSE);
  
  beginShape();
    vertex(400 + 225 - mouseX*0.785,200 - mouseY*0.15);
    vertex(400 + 225 - mouseX*0.785,180 - mouseY*0.15);
    vertex(400 + 240 - mouseX*0.785,140 - mouseY*0.15);
    vertex(400 + 240 - mouseX*0.785,-80 - mouseY*0.15);
    vertex(400 + 280 - mouseX*0.785,-80 - mouseY*0.15);
    vertex(400 + 280 - mouseX*0.785,140 - mouseY*0.15);
    vertex(400 + 295 - mouseX*0.785,180 - mouseY*0.15);
    vertex(400 + 295 - mouseX*0.785,200 - mouseY*0.15);
  endShape(CLOSE);
  
  beginShape();
    vertex(400 + 345 - mouseX*0.785,200 - mouseY*0.15);
    vertex(400 + 345 - mouseX*0.785,180 - mouseY*0.15);
    vertex(400 + 360 - mouseX*0.785,140 - mouseY*0.15);
    vertex(400 + 360 - mouseX*0.785,-80 - mouseY*0.15);
    vertex(400 + 400 - mouseX*0.785,-80 - mouseY*0.15);
    vertex(400 + 400 - mouseX*0.785,140 - mouseY*0.15);
    vertex(400 + 415 - mouseX*0.785,180 - mouseY*0.15);
    vertex(400 + 415 - mouseX*0.785,200 - mouseY*0.15);
  endShape(CLOSE);
  
  //Close Bushes LEFT
  fill(84 - mouseX*0.15,173 - mouseX*0.2,47 - mouseX*0.15);
  beginShape();
    vertex(-30 - mouseX*0.88,280 - mouseY*0.2);
    vertex(-30 - mouseX*0.88,180 - mouseY*0.2);
    
    vertex(5 - mouseX*0.88,175 - mouseY*0.2);
    vertex(10 - mouseX*0.88 + sin(frameCount*0.05),155 - mouseY*0.2);
    vertex(40 - mouseX*0.88 + sin(frameCount*0.05)*1.3,150 - mouseY*0.2);
    vertex(40 - mouseX*0.88 + sin(frameCount*0.05),170 - mouseY*0.2);
    vertex(50 - mouseX*0.88,180 - mouseY*0.2);
    vertex(60 - mouseX*0.88 - sin(frameCount*0.05),175 - mouseY*0.2);
    vertex(60 - mouseX*0.88 - sin(frameCount*0.05)*1.3,158 - mouseY*0.2);
    vertex(80 - mouseX*0.88 - sin(frameCount*0.05),173 - mouseY*0.2);
    vertex(90 - mouseX*0.88,188 - mouseY*0.2);
    vertex(105 - mouseX*0.88 + sin(frameCount*0.05)*1.1,175 - mouseY*0.2);
    vertex(120 - mouseX*0.88 + sin(frameCount*0.05)*1.4,170 - mouseY*0.2);
    vertex(115 - mouseX*0.88 + sin(frameCount*0.05)*1.1,185 - mouseY*0.2);
    vertex(140 - mouseX*0.88,190 - mouseY*0.2);
    vertex(165 - mouseX*0.88 - sin(frameCount*0.05),180 - mouseY*0.2);
    vertex(180 - mouseX*0.88 - sin(frameCount*0.05)*1.3,160 - mouseY*0.2);
    vertex(200 - mouseX*0.88 - sin(frameCount*0.05),185 - mouseY*0.2);
    vertex(220 - mouseX*0.88 + sin(frameCount*0.05)*1.2,170 - mouseY*0.2);
    vertex(240 - mouseX*0.88 + sin(frameCount*0.05),180 - mouseY*0.2);
    vertex(260 - mouseX*0.88,190 - mouseY*0.2);
    vertex(270 - mouseX*0.88 - sin(frameCount*0.05)*1.2,180 - mouseY*0.2);
    vertex(280 - mouseX*0.88 - sin(frameCount*0.05)*5,160 - mouseY*0.2);
    vertex(288 - mouseX*0.88 - sin(frameCount*0.05)*1.2,180 - mouseY*0.2);
    vertex(300 - mouseX*0.88,195 - mouseY*0.2);
    vertex(300 - mouseX*0.88 + sin(frameCount*0.05)*1.5,180 - mouseY*0.2);
    vertex(330 - mouseX*0.88 + sin(frameCount*0.05)*2,165 - mouseY*0.2);
    vertex(340 - mouseX*0.88 + sin(frameCount*0.05)*1.25,190 - mouseY*0.2);
    vertex(350 - mouseX*0.88,200 - mouseY*0.2);
    vertex(362 - mouseX*0.88 - sin(frameCount*0.05)*1.25,188 - mouseY*0.2);
    vertex(370 - mouseX*0.88 - sin(frameCount*0.05)*1.5,160 - mouseY*0.2);
    vertex(400 - mouseX*0.88 - sin(frameCount*0.05)*1.25,180 - mouseY*0.2);
    
    vertex(440 - mouseX*0.88,180 - mouseY*0.23);
    vertex(440 - mouseX*0.88,280 - mouseY*0.23);
  endShape(CLOSE);
  //Close Bushes RIGHT
  fill(84 - mouseX*0.15,173 - mouseX*0.2,47 - mouseX*0.15);
  beginShape();
    vertex(400 + -30 - mouseX*0.88,280 - mouseY*0.2);
    vertex(400 + -30 - mouseX*0.88,180 - mouseY*0.2);
    
    vertex(400 + 5 - mouseX*0.88,175 - mouseY*0.2);
    vertex(400 + 10 - mouseX*0.88 + sin(frameCount*0.05),155 - mouseY*0.2);
    vertex(400 + 40 - mouseX*0.88 + sin(frameCount*0.05)*1.3,150 - mouseY*0.2);
    vertex(400 + 40 - mouseX*0.88 + sin(frameCount*0.05),170 - mouseY*0.2);
    vertex(400 + 50 - mouseX*0.88,180 - mouseY*0.2);
    vertex(400 + 60 - mouseX*0.88 - sin(frameCount*0.05),175 - mouseY*0.2);
    vertex(400 + 60 - mouseX*0.88 - sin(frameCount*0.05)*1.3,158 - mouseY*0.2);
    vertex(400 + 80 - mouseX*0.88 - sin(frameCount*0.05),173 - mouseY*0.2);
    vertex(400 + 90 - mouseX*0.88,188 - mouseY*0.2);
    vertex(400 + 105 - mouseX*0.88 + sin(frameCount*0.05)*1.1,175 - mouseY*0.2);
    vertex(400 + 120 - mouseX*0.88 + sin(frameCount*0.05)*1.4,170 - mouseY*0.2);
    vertex(400 + 115 - mouseX*0.88 + sin(frameCount*0.05)*1.1,185 - mouseY*0.2);
    vertex(400 + 140 - mouseX*0.88,190 - mouseY*0.2);
    vertex(400 + 165 - mouseX*0.88 - sin(frameCount*0.05),180 - mouseY*0.2);
    vertex(400 + 180 - mouseX*0.88 - sin(frameCount*0.05)*1.3,160 - mouseY*0.2);
    vertex(400 + 200 - mouseX*0.88 - sin(frameCount*0.05),185 - mouseY*0.2);
    vertex(400 + 220 - mouseX*0.88 + sin(frameCount*0.05)*1.2,170 - mouseY*0.2);
    vertex(400 + 240 - mouseX*0.88 + sin(frameCount*0.05),180 - mouseY*0.2);
    vertex(400 + 260 - mouseX*0.88,190 - mouseY*0.2);
    vertex(400 + 270 - mouseX*0.88 - sin(frameCount*0.05)*1.2,180 - mouseY*0.2);
    vertex(400 + 280 - mouseX*0.88 - sin(frameCount*0.05)*5,160 - mouseY*0.2);
    vertex(400 + 288 - mouseX*0.88 - sin(frameCount*0.05)*1.2,180 - mouseY*0.2);
    vertex(400 + 300 - mouseX*0.88,195 - mouseY*0.2);
    vertex(400 + 300 - mouseX*0.88 + sin(frameCount*0.05)*1.5,180 - mouseY*0.2);
    vertex(400 + 330 - mouseX*0.88 + sin(frameCount*0.05)*2,165 - mouseY*0.2);
    vertex(400 + 340 - mouseX*0.88 + sin(frameCount*0.05)*1.25,190 - mouseY*0.2);
    vertex(400 + 350 - mouseX*0.88,200 - mouseY*0.2);
    vertex(400 + 362 - mouseX*0.88 - sin(frameCount*0.05)*1.25,188 - mouseY*0.2);
    vertex(400 + 370 - mouseX*0.88 - sin(frameCount*0.05)*1.5,160 - mouseY*0.2);
    vertex(400 + 400 - mouseX*0.88 - sin(frameCount*0.05)*1.25,180 - mouseY*0.2);
    
    vertex(400 + 440 - mouseX*0.88,180 - mouseY*0.23);
    vertex(400 + 440 - mouseX*0.88,280 - mouseY*0.23);
  endShape(CLOSE);
  
  //Ground LEFT
  fill(131 - mouseX*0.15,66 - mouseX*0.15,38 - mouseX*0.15);
  beginShape();
    vertex(-30 - mouseX*1,520 - mouseY*0.23);
    vertex(-30 - mouseX*1,260 - mouseY*0.23);
    
    vertex(50 - mouseX*1,240 - mouseY*0.23);
    vertex(100 - mouseX*1,260 - mouseY*0.23);
    vertex(140 - mouseX*1,250 - mouseY*0.23);
    vertex(170 - mouseX*1,265 - mouseY*0.23);
    vertex(200 - mouseX*1,255 - mouseY*0.23);
    vertex(230 - mouseX*1,260 - mouseY*0.23);
    vertex(255 - mouseX*1,264 - mouseY*0.23);
    vertex(270 - mouseX*1,255 - mouseY*0.23);
    vertex(305 - mouseX*1,260 - mouseY*0.23);
    vertex(320 - mouseX*1,255 - mouseY*0.23);
    vertex(365 - mouseX*1,265 - mouseY*0.23);
    vertex(380 - mouseX*1,245 - mouseY*0.23);
    
    vertex(440 - mouseX*1,260 - mouseY*0.23);
    vertex(440 - mouseX*1,520 - mouseY*0.23);
  endShape(CLOSE);
  //Ground RIGHT
  fill(131 - mouseX*0.15,66 - mouseX*0.15,38 - mouseX*0.15);
  beginShape();
    vertex(400 + -30 - mouseX*1,520 - mouseY*0.23);
    vertex(400 + -30 - mouseX*1,260 - mouseY*0.23);
    
    vertex(400 + 50 - mouseX*1,240 - mouseY*0.23);
    vertex(400 + 100 - mouseX*1,260 - mouseY*0.23);
    vertex(400 + 140 - mouseX*1,250 - mouseY*0.23);
    vertex(400 + 170 - mouseX*1,265 - mouseY*0.23);
    vertex(400 + 200 - mouseX*1,255 - mouseY*0.23);
    vertex(400 + 230 - mouseX*1,260 - mouseY*0.23);
    vertex(400 + 255 - mouseX*1,264 - mouseY*0.23);
    vertex(400 + 270 - mouseX*1,255 - mouseY*0.23);
    vertex(400 + 305 - mouseX*1,260 - mouseY*0.23);
    vertex(400 + 320 - mouseX*1,255 - mouseY*0.23);
    vertex(400 + 365 - mouseX*1,265 - mouseY*0.23);
    vertex(400 + 380 - mouseX*1,245 - mouseY*0.23);
    
    vertex(400 + 440 - mouseX*1,260 - mouseY*0.23);
    vertex(400 + 440 - mouseX*1,520 - mouseY*0.23);
  endShape(CLOSE);
  
  /* THE DUDE ******************************************************************************************************************************************************************************************************************
  -Split into multiple parts
  *************************************************************************************************************************************************************************************************************************** */
  
  //Bow
  //Bowstring
  stroke(20,20,20);
  strokeWeight(2);
  strokeCap(SQUARE);
  line(8 - mouseX*1.1,276 - mouseY*0.25 + 1.5*sin(frameCount*0.045 - 1),177 - mouseX*1.1,198 - mouseY*0.25 + 1.5*sin(frameCount*0.045 - 1));
  noStroke();
  //Core of Handle
  fill(125 - mouseX*2,125 - mouseX*2,125 - mouseX*2);
  beginShape();
    vertex(97 - mouseX*1.1,260 - mouseY*0.25 + 1.5*sin(frameCount*0.045 - 1));
    vertex(92 - mouseX*1.1,268 - mouseY*0.25 + 1.5*sin(frameCount*0.045 - 1));
    vertex(100 - mouseX*1.1,278 - mouseY*0.25 + 1.5*sin(frameCount*0.045 - 1));
    vertex(108 - mouseX*1.1,280 - mouseY*0.25 + 1.5*sin(frameCount*0.045 - 1));
    vertex(110 - mouseX*1.1,271 - mouseY*0.25 + 1.5*sin(frameCount*0.045 - 1));
    vertex(105 - mouseX*1.1,261 - mouseY*0.25 + 1.5*sin(frameCount*0.045 - 1));
  endShape(CLOSE);
  //Leftside of Bow
  beginShape();
    vertex(90 - mouseX*1.1,270 - mouseY*0.25 + 1.5*sin(frameCount*0.045 - 1));
    vertex(97 - mouseX*1.1,279 - mouseY*0.25 + 1.5*sin(frameCount*0.045 - 1));
    vertex(65 - mouseX*1.1,290 - mouseY*0.25 + 1.5*sin(frameCount*0.045 - 1));
    vertex(65 - mouseX*1.1,300 - mouseY*0.25 + 1.5*sin(frameCount*0.045 - 1));
    vertex(45 - mouseX*1.1,285 - mouseY*0.25 + 1.5*sin(frameCount*0.045 - 1));
    vertex(25 - mouseX*1.1,300 - mouseY*0.25 + 1.5*sin(frameCount*0.045 - 1));
    vertex(20 - mouseX*1.1,290 - mouseY*0.25 + 1.5*sin(frameCount*0.045 - 1));
    vertex(40 - mouseX*1.1,280 - mouseY*0.25 + 1.5*sin(frameCount*0.045 - 1));
    vertex(40 - mouseX*1.1,265 - mouseY*0.25 + 1.5*sin(frameCount*0.045 - 1));
    vertex(60 - mouseX*1.1,285 - mouseY*0.25 + 1.5*sin(frameCount*0.045 - 1));
  endShape(CLOSE);
  //Farleft side of Bow
  triangle(22 - mouseX*1.1,302 - mouseY*0.25 + 1.5*sin(frameCount*0.045 - 1),8 - mouseX*1.1,298 - mouseY*0.25 + 1.5*sin(frameCount*0.045 - 1),8 - mouseX*1.1,275 - mouseY*0.25 + 1.5*sin(frameCount*0.045 - 1));
  //Rightside of Bow
  beginShape();
    vertex(108 - mouseX*1.1,260 - mouseY*0.25 + 1.5*sin(frameCount*0.045 - 1));
    vertex(113 - mouseX*1.1,270 - mouseY*0.25 + 1.5*sin(frameCount*0.045 - 1));
    vertex(142 - mouseX*1.1,242 - mouseY*0.25 + 1.5*sin(frameCount*0.045 - 1));
    vertex(150 - mouseX*1.1,260 - mouseY*0.25 + 1.5*sin(frameCount*0.045 - 1));
    vertex(148 - mouseX*1.1,232 - mouseY*0.25 + 1.5*sin(frameCount*0.045 - 1));
    vertex(172 - mouseX*1.1,222 - mouseY*0.25 + 1.5*sin(frameCount*0.045 - 1));
    vertex(172 - mouseX*1.1,212 - mouseY*0.25 + 1.5*sin(frameCount*0.045 - 1));
    vertex(140 - mouseX*1.1,225 - mouseY*0.25 + 1.5*sin(frameCount*0.045 - 1));
    vertex(140 - mouseX*1.1,240 - mouseY*0.25 + 1.5*sin(frameCount*0.045 - 1));
  endShape(CLOSE);
  //Farright side of Bow
  triangle(177 - mouseX*1.1,220 - mouseY*0.25 + 1.5*sin(frameCount*0.045 - 1),177 - mouseX*1.1,197 - mouseY*0.25 + 1.5*sin(frameCount*0.045 - 1),188 - mouseX*1.1,212 - mouseY*0.25 + 1.5*sin(frameCount*0.045 - 1));
  
  
  //Hat
  beginShape(TRIANGLES);
    //Underside of top part
    fill(20 - mouseX*2,20 - mouseX*2,20 - mouseX*2);
    vertex(130 - mouseX*1.1,142 - mouseY*0.25 + 1.5*sin(frameCount*0.045));
    vertex(160 - mouseX*1.1,152 - mouseY*0.25 + 1.5*sin(frameCount*0.045));
    vertex(130 - mouseX*1.1,152 - mouseY*0.25 + 1.5*sin(frameCount*0.045));
    //Topside of top part
    fill(200 - mouseX*2,200 - mouseX*2,200 - mouseX*2);
    vertex(130 - mouseX*1.1,142 - mouseY*0.25 + 1.5*sin(frameCount*0.045));
    vertex(160 - mouseX*1.1,152 - mouseY*0.25 + 1.5*sin(frameCount*0.045));
    vertex(145 - mouseX*1.1,132 - mouseY*0.25 + 1.5*sin(frameCount*0.045));
    //Brimside of hat
    fill(100 - mouseX*2,100 - mouseX*2,100 - mouseX*2);
    vertex(120 - mouseX*1.1,142 - mouseY*0.25 + 1.5*sin(frameCount*0.045 - 0.2));
    vertex(180 - mouseX*1.1,162 - mouseY*0.25 + 1.5*sin(frameCount*0.045 - 0.2));
    vertex(126 - mouseX*1.1,158 - mouseY*0.25 + 1.5*sin(frameCount*0.045 - 0.2));
  endShape();
  
  //Head
  beginShape(QUADS);
    //Head shape
    fill(200 - mouseX*2,200 - mouseX*2,200 - mouseX*2);
    vertex(130 - mouseX*1.1,150 - mouseY*0.25 + 1.5*sin(frameCount*0.045 - 0.4));
    vertex(158 - mouseX*1.1,158 - mouseY*0.25 + 1.5*sin(frameCount*0.045 - 0.4));
    vertex(150 - mouseX*1.1,180 - mouseY*0.25 + 1.5*sin(frameCount*0.045 - 0.4));
    vertex(135 - mouseX*1.1,172 - mouseY*0.25 + 1.5*sin(frameCount*0.045 - 0.4));
    //Eye
    fill(59 + mouseX*2,250 - mouseX*2,250 - mouseX*2);
    vertex(142 - mouseX*1.1,161 - mouseY*0.25 + 1.5*sin(frameCount*0.045 - 0.4));
    vertex(155 - mouseX*1.1,165 - mouseY*0.25 + 1.5*sin(frameCount*0.045 - 0.4));
    vertex(152 - mouseX*1.1,172 - mouseY*0.25 + 1.5*sin(frameCount*0.045 - 0.4));
    vertex(146 - mouseX*1.1,170 - mouseY*0.25 + 1.5*sin(frameCount*0.045 - 0.4));
  endShape();
   
  //Collar (Rightside)
  fill(250 - mouseX*2,250 - mouseX*2,250 - mouseX*2);
  triangle(130 - mouseX*1.1,175 - mouseY*0.25 + 1.5*sin(frameCount*0.045 - 0.6),130 - mouseX*1.1,185 - mouseY*0.25 + 1.5*sin(frameCount*0.045 - 0.6),160 - mouseX*1.1,195 - mouseY*0.25 + 1.5*sin(frameCount*0.045 - 0.6));
  //Collar (Leftside)
  fill(150 - mouseX*2,150 - mouseX*2,150 - mouseX*2);
  triangle(130 - mouseX*1.1,175 - mouseY*0.25 + 1.5*sin(frameCount*0.045 - 0.6),130 - mouseX*1.1,185 - mouseY*0.25 + 1.5*sin(frameCount*0.045 - 0.6),120 - mouseX*1.1,190 - mouseY*0.25 + 1.5*sin(frameCount*0.045 - 0.6));
  
  //Left Arm
  //Shoulder
  fill(250 - mouseX*2,250 - mouseX*2,250 - mouseX*2);
  quad(90 - mouseX*1.1,190 - mouseY*0.25 + 1.5*sin(frameCount*0.045 - 0.8),115 - mouseX*1.1,190 - mouseY*0.25 + 1.5*sin(frameCount*0.045 - 0.8),110 - mouseX*1.1,193 - mouseY*0.25 + 1.5*sin(frameCount*0.045 - 0.8),105 - mouseX*1.1,203 - mouseY*0.25 + 1.5*sin(frameCount*0.045 - 0.8));
  //Upper arm
  fill(200 - mouseX*2,200 - mouseX*2,200 - mouseX*2);
  triangle(92 - mouseX*1.1,197 - mouseY*0.25 + 1.5*sin(frameCount*0.045 - 0.9),104 - mouseX*1.1,207 - mouseY*0.25 + 1.5*sin(frameCount*0.045 - 0.9),90 - mouseX*1.1,236 - mouseY*0.25 + 1.5*sin(frameCount*0.045 - 0.9));
  //Elbow
  
  //Forearm
  quad(100 - mouseX*1.1,235 - mouseY*0.25 + 1.5*sin(frameCount*0.045 - 1),90 - mouseX*1.1,242 - mouseY*0.25 + 1.5*sin(frameCount*0.045 - 1),85 - mouseX*1.1,240 - mouseY*0.25 + 1.5*sin(frameCount*0.045 - 1),100 - mouseX*1.1,265 - mouseY*0.25 + 1.5*sin(frameCount*0.045 - 1));
  
  //Core
  //Darkside
  fill(125 - mouseX*2,125 - mouseX*2,125 - mouseX*2);
  triangle(135 - mouseX*1.1,240 - mouseY*0.25 + 1.5*sin(frameCount*0.045 - 0.7),135 - mouseX*1.1,260 - mouseY*0.25 + 1.5*sin(frameCount*0.045 - 0.7),128 - mouseX*1.1,255 - mouseY*0.25 + 1.5*sin(frameCount*0.045 - 0.7));
  //Lightside
  fill(175 - mouseX*2,175 - mouseX*2,175 - mouseX*2);
  triangle(135 - mouseX*1.1,240 - mouseY*0.25 + 1.5*sin(frameCount*0.045 - 0.7),135 - mouseX*1.1,260 - mouseY*0.25 + 1.5*sin(frameCount*0.045 - 0.7),143 - mouseX*1.1,255 - mouseY*0.25 + 1.5*sin(frameCount*0.045 - 0.7));
  
  //Chest
  //Leftside Chest
  fill(150 - mouseX*2,150 - mouseX*2,150 - mouseX*2);
  beginShape();
    vertex(130 - mouseX*1.1,190 - mouseY*0.25 + 1.5*sin(frameCount*0.045 - 0.6));
    vertex(120 - mouseX*1.1,210 - mouseY*0.25 + 1.5*sin(frameCount*0.045 - 0.6));
    vertex(135 - mouseX*1.1,250 - mouseY*0.25 + 1.5*sin(frameCount*0.045 - 0.6));
    vertex(128 - mouseX*1.1,245 - mouseY*0.25 + 1.5*sin(frameCount*0.045 - 0.6));
    vertex(110 - mouseX*1.1,210 - mouseY*0.25 + 1.5*sin(frameCount*0.045 - 0.6));
    vertex(115 - mouseX*1.1,195 - mouseY*0.25 + 1.5*sin(frameCount*0.045 - 0.6));
  endShape(CLOSE);
  //Rightside Chest
  fill(200 - mouseX*2,200 - mouseX*2,200 - mouseX*2);
  beginShape();
    vertex(130 - mouseX*1.1,190 - mouseY*0.25 + 1.5*sin(frameCount*0.045 - 0.6));
    vertex(160 - mouseX*1.1,200 - mouseY*0.25 + 1.5*sin(frameCount*0.045 - 0.6));
    vertex(150 - mouseX*1.1,205 - mouseY*0.25 + 1.5*sin(frameCount*0.045 - 0.6));
    vertex(145 - mouseX*1.1,245 - mouseY*0.25 + 1.5*sin(frameCount*0.045 - 0.6));
    vertex(135 - mouseX*1.1,250 - mouseY*0.25 + 1.5*sin(frameCount*0.045 - 0.6));
    vertex(120 - mouseX*1.1,210 - mouseY*0.25 + 1.5*sin(frameCount*0.045 - 0.6));
  endShape(CLOSE);
  
  //Waist
  //Leftside
  fill(150 - mouseX*2,150 - mouseX*2,150 - mouseX*2);
  quad(135 - mouseX*1.1,264 - mouseY*0.25 + 1.5*sin(frameCount*0.045 - 0.8),134 - mouseX*1.1,274 - mouseY*0.25 + 1.5*sin(frameCount*0.045 - 0.8),122 - mouseX*1.1,260 - mouseY*0.25 + 1.5*sin(frameCount*0.045 - 0.8),124 - mouseX*1.1,256 - mouseY*0.25 + 1.5*sin(frameCount*0.045 - 0.8));
  //Rightside
  fill(200 - mouseX*2,200 - mouseX*2,200 - mouseX*2);
  quad(135 - mouseX*1.1,264 - mouseY*0.25 + 1.5*sin(frameCount*0.045 - 0.8),134 - mouseX*1.1,274 - mouseY*0.25 + 1.5*sin(frameCount*0.045 - 0.8),150 - mouseX*1.1,264 - mouseY*0.25 + 1.5*sin(frameCount*0.045 - 0.8),143 - mouseX*1.1,258 - mouseY*0.25 + 1.5*sin(frameCount*0.045 - 0.8));
  
  //Left leg
  //Thigh
  fill(150 - mouseX*2,150 - mouseX*2,150 - mouseX*2);
  triangle(120 - mouseX*1.1,265 - mouseY*0.25 + 1.5*sin(frameCount*0.045 - 0.8),135 - mouseX*1.1,280 - mouseY*0.25 + 1.5*sin(frameCount*0.045 - 0.8),115 - mouseX*1.1,325 - mouseY*0.25 + 1.5*sin(frameCount*0.045 - 0.8));
  //Knee
  
  //Calf
  triangle(122 - mouseX*1.1,327 - mouseY*0.25 + 1.5*sin(frameCount*0.045 - 0.9),108 - mouseX*1.1,330 - mouseY*0.25 + 1.5*sin(frameCount*0.045 - 0.9),104 - mouseX*1.1,370 - mouseY*0.25 + 1.5*sin(frameCount*0.045 - 0.9));
  
  //Right Leg
  //Thigh
  fill(200 - mouseX*2,200 - mouseX*2,200 - mouseX*2);
  triangle(152 - mouseX*1.1,268 - mouseY*0.25 + 1.5*sin(frameCount*0.045 - 0.8),135 - mouseX*1.1,280 - mouseY*0.25 + 1.5*sin(frameCount*0.045 - 0.8),156 - mouseX*1.1,325 - mouseY*0.25 + 1.5*sin(frameCount*0.045 - 0.8));
  //Knee
  
  //Calf
  triangle(165 - mouseX*1.1,324 - mouseY*0.25 + 1.5*sin(frameCount*0.045 - 0.9),150 - mouseX*1.1,330 - mouseY*0.25 + 1.5*sin(frameCount*0.045 - 0.9),150 - mouseX*1.1,370 - mouseY*0.25 + 1.5*sin(frameCount*0.045 - 0.9));
  
  //Right Arm
  //Shoulder
  fill(250 - mouseX*2,250 - mouseX*2,250 - mouseX*2);
  quad(173 - mouseX*1.1,205 - mouseY*0.25 + 1.5*sin(frameCount*0.045 - 0.8),148 - mouseX*1.1,194 - mouseY*0.25 + 1.5*sin(frameCount*0.045 - 0.8),140 - mouseX*1.1,198 - mouseY*0.25 + 1.5*sin(frameCount*0.045 - 0.8),144 - mouseX*1.1,207 - mouseY*0.25 + 1.5*sin(frameCount*0.045 - 0.8));
  //Upper Arm
  triangle(146 - mouseX*1.1,210 - mouseY*0.25 + 1.5*sin(frameCount*0.045 - 0.9),163 - mouseX*1.1,209 - mouseY*0.25 + 1.5*sin(frameCount*0.045 - 0.9),153 - mouseX*1.1,243 - mouseY*0.25 + 1.5*sin(frameCount*0.045 - 0.9));
  //Elbow
  
  //Forearm
  quad(160 - mouseX*1.1,240 - mouseY*0.25 + 1.5*sin(frameCount*0.045 - 1),165 - mouseX*1.1,280 - mouseY*0.25 + 1.5*sin(frameCount*0.045 - 1),145 - mouseX*1.1,245 - mouseY*0.25 + 1.5*sin(frameCount*0.045 - 1),152 - mouseX*1.1,250 - mouseY*0.25 + 1.5*sin(frameCount*0.045 - 1));
  
  
  
  
  //THE DEER (Add 10 to y to fix displacement)
  //Left Front Leg
  fill(151,86,58);
  //Upper
  triangle(240 - mouseX*1.1,280 - mouseY*0.25,260 - mouseX*1.1,290 - mouseY*0.25,240 - mouseX*1.1,310 - mouseY*0.25);
  //Lower
  triangle(210 - mouseX*1.1,310 - mouseY*0.25,240 - mouseX*1.1,300 - mouseY*0.25,240 - mouseX*1.1,310 - mouseY*0.25);
  
  //Left Back Leg
  //Upper
  triangle(210 - mouseX*1.1,260 - mouseY*0.25,220 - mouseX*1.1,275 - mouseY*0.25,190 - mouseX*1.1,270 - mouseY*0.25);
  //Lower
  triangle(190 - mouseX*1.1,270 - mouseY*0.25,200 - mouseX*1.1,270 - mouseY*0.25,190 - mouseX*1.1,290 - mouseY*0.25);
  
  //Body
  fill(161,96,68);
  beginShape();
    vertex(240 - mouseX*1.1,240 - mouseY*0.25);
    vertex(275 - mouseX*1.1,250 - mouseY*0.25);
    vertex(280 - mouseX*1.1,280 - mouseY*0.25);
    vertex(260 - mouseX*1.1,290 - mouseY*0.25);
    vertex(250 - mouseX*1.1,290 - mouseY*0.25);
    vertex(210 - mouseX*1.1,270 - mouseY*0.25);
    vertex(205 - mouseX*1.1,250 - mouseY*0.25);
    vertex(210 - mouseX*1.1,240 - mouseY*0.25);
  endShape(CLOSE);
  
  //Right Front Leg
  fill(171,106,78);
  //Upper
  quad(230 - mouseX*1.1,260 - mouseY*0.25,245 - mouseX*1.1,260 - mouseY*0.25,250 - mouseX*1.1,270 - mouseY*0.25,230 - mouseX*1.1,290 - mouseY*0.25);
  //Lower
  quad(220 - mouseX*1.1,280 - mouseY*0.25,230 - mouseX*1.1,280 - mouseY*0.25,230 - mouseX*1.1,290 - mouseY*0.25,200 - mouseX*1.1,310 - mouseY*0.25);
  
  //Right Back Leg
  //Upper
  quad(210 - mouseX*1.1,245 - mouseY*0.25,220 - mouseX*1.1,245 - mouseY*0.25,220 - mouseX*1.1,260 - mouseY*0.25,190 - mouseX*1.1,260 - mouseY*0.25);
  //Lower
  quad(190 - mouseX*1.1,260 - mouseY*0.25,200 - mouseX*1.1,260 - mouseY*0.25,200 - mouseX*1.1,270 - mouseY*0.25,180 - mouseX*1.1,290 - mouseY*0.25);
  
  //Neck
  fill(166,101,73);
  beginShape();
    vertex(275 - mouseX*1.1,255 - mouseY*0.25);
    vertex(310 - mouseX*1.1,270 - mouseY*0.25);
    vertex(310 - mouseX*1.1,280 - mouseY*0.25);
    vertex(270 - mouseX*1.1,280 - mouseY*0.25);
    vertex(260 - mouseX*1.1,270 - mouseY*0.25);
  endShape();
  
  //Left Horn
  fill(165,165,165);
  beginShape();
    vertex(308 - mouseX*1.1,275 - mouseY*0.25);
    vertex(315 - mouseX*1.1,282 - mouseY*0.25);
    vertex(325 - mouseX*1.1,275 - mouseY*0.25);
    vertex(330 - mouseX*1.1,280 - mouseY*0.25);
    vertex(310 - mouseX*1.1,290 - mouseY*0.25);
    vertex(303 - mouseX*1.1,280 - mouseY*0.25);
  endShape(CLOSE);
  //Head
  fill(171,106,78);
  beginShape();
    vertex(300 - mouseX*1.1,262 - mouseY*0.25);
    vertex(310 - mouseX*1.1,272 - mouseY*0.25);
    vertex(310 - mouseX*1.1,305 - mouseY*0.25);
    vertex(300 - mouseX*1.1,305 - mouseY*0.25);
    vertex(285 - mouseX*1.1,275 - mouseY*0.25);
  endShape(CLOSE);
  
  //Eye (Closed)
  stroke(20,20,20);
  strokeWeight(2);
  strokeCap(SQUARE);
  line(300 - mouseX*1.1,271 - mouseY*0.25,303 - mouseX*1.1,274 - mouseY*0.25);
  noStroke();
  
  //Right Horn
  fill(175,175,175);
  beginShape();
    vertex(285 - mouseX*1.1,260 - mouseY*0.25);
    vertex(305 - mouseX*1.1,250 - mouseY*0.25);
    vertex(310 - mouseX*1.1,255 - mouseY*0.25);
    vertex(292 - mouseX*1.1,261 - mouseY*0.25);
    vertex(300 - mouseX*1.1,267 - mouseY*0.25);
    vertex(295 - mouseX*1.1,267 - mouseY*0.25);
  endShape(CLOSE);
  
  
  
  //Blood Pool
  fill(200,20,20);
  beginShape();
    vertex(450 + 190 - mouseX*1.1,270 - mouseY*0.23);
    vertex(450 + 280 - mouseX*1.1,270 - mouseY*0.23);
    vertex(450 + 310 - mouseX*1.1,290 - mouseY*0.23);
    vertex(450 + 310 - mouseX*1.1,320 - mouseY*0.23);
    vertex(450 + 290 - mouseX*1.1,330 - mouseY*0.23);
    vertex(450 + 280 - mouseX*1.1,330 - mouseY*0.23);
    vertex(450 + 270 - mouseX*1.1,340 - mouseY*0.23);
    vertex(450 + 280 - mouseX*1.1,350 - mouseY*0.23);
    vertex(450 + 270 - mouseX*1.1,360 - mouseY*0.23);
    vertex(450 + 230 - mouseX*1.1,360 - mouseY*0.23);
    vertex(450 + 220 - mouseX*1.1,350 - mouseY*0.23);
    vertex(450 + 230 - mouseX*1.1,340 - mouseY*0.23);
    vertex(450 + 220 - mouseX*1.1,330 - mouseY*0.23);
    vertex(450 + 190 - mouseX*1.1,330 - mouseY*0.23);
    vertex(450 + 170 - mouseX*1.1,310 - mouseY*0.23);
    vertex(450 + 170 - mouseX*1.1,290 - mouseY*0.23);
  endShape(CLOSE);
  //Dragged Blood
  beginShape();
    vertex(450 + 300 - mouseX*1.1,290 - mouseY*0.23);
    vertex(450 + 395 - mouseX*1.1,295 - mouseY*0.23);
    vertex(450 + 395 - mouseX*1.1,300 - mouseY*0.23);
    vertex(450 + 300 - mouseX*1.1,310 - mouseY*0.23);
  endShape(CLOSE);
  
  //Skull
  fill(175,175,175);
  beginShape();
    vertex(450 + 270 - mouseX*1.1,272 - mouseY*0.25);
    vertex(450 + 280 - mouseX*1.1,282 - mouseY*0.25);
    vertex(450 + 280 - mouseX*1.1,315 - mouseY*0.25);
    vertex(450 + 270 - mouseX*1.1,315 - mouseY*0.25);
    vertex(450 + 255 - mouseX*1.1,285 - mouseY*0.25);
  endShape(CLOSE);
  
  //Eye Socket
  stroke(0,0,0);
  strokeWeight(8);
  strokeCap(PROJECT);
  line(450 + 268 - mouseX*1.1,289 - mouseY*0.25,450 + 268 - mouseX*1.1,289 - mouseY*0.25);
  noStroke();
  
  //Foreground LEFT (Tree, Bushes)
  fill(0,0,0);
  beginShape();
    vertex(-30 - mouseX*1.2,500 - mouseY*0.25);
    vertex(-30 - mouseX*1.2,350 - mouseY*0.25);
    
    vertex(0 - mouseX*1.2 + sin(frameCount*0.1),325 - mouseY*0.25);
    vertex(20 - mouseX*1.2,350 - mouseY*0.25);
    vertex(40 - mouseX*1.2,330 - mouseY*0.25);
    vertex(50 - mouseX*1.2,355 - mouseY*0.25);
    vertex(65 - mouseX*1.2,360 - mouseY*0.25);
    vertex(72 - mouseX*1.2,357 - mouseY*0.25);
    vertex(80 - mouseX*1.2,340 - mouseY*0.25);
    vertex(95 - mouseX*1.2,320 - mouseY*0.25);
    vertex(110 - mouseX*1.2,337 - mouseY*0.25);
    vertex(120 - mouseX*1.2,350 - mouseY*0.25);
    vertex(140 - mouseX*1.2,340 - mouseY*0.25);
    vertex(165 - mouseX*1.2,325 - mouseY*0.25);
    vertex(158 - mouseX*1.2,340 - mouseY*0.25);
    vertex(170 - mouseX*1.2,355 - mouseY*0.25);
    vertex(180 - mouseX*1.2,340 - mouseY*0.25);
    vertex(210 - mouseX*1.2,320 - mouseY*0.25);
    vertex(200 - mouseX*1.2,340 - mouseY*0.25);
    vertex(220 - mouseX*1.2,365 - mouseY*0.25);
    vertex(240 - mouseX*1.2,350 - mouseY*0.25);
    vertex(240 - mouseX*1.2,320 - mouseY*0.25);
    vertex(260 - mouseX*1.2,345 - mouseY*0.25);
    vertex(280 - mouseX*1.2,340 - mouseY*0.25);
    vertex(310 - mouseX*1.2,320 - mouseY*0.25);
    vertex(300 - mouseX*1.2,345 - mouseY*0.25);
    vertex(310 - mouseX*1.2,350 - mouseY*0.25);
    vertex(320 - mouseX*1.2,345 - mouseY*0.25);
    vertex(330 - mouseX*1.2,310 - mouseY*0.25);
    vertex(340 - mouseX*1.2,335 - mouseY*0.25);
    vertex(360 - mouseX*1.2,335 - mouseY*0.25);
    vertex(380 - mouseX*1.2,220 - mouseY*0.25);
    vertex(380 - mouseX*1.2,160 - mouseY*0.25);
    vertex(360 - mouseX*1.2,80 - mouseY*0.25);
    vertex(355 - mouseX*1.2,60 - mouseY*0.25);
    vertex(340 - mouseX*1.2,40 - mouseY*0.25);
    vertex(310 - mouseX*1.2,30 - mouseY*0.25);
    vertex(300 - mouseX*1.2,20 - mouseY*0.25);
    vertex(260 - mouseX*1.2,10 - mouseY*0.25);
    vertex(230 - mouseX*1.2,10 - mouseY*0.25);
    vertex(200 - mouseX*1.2,-30 - mouseY*0.25);
    
    //Above
    vertex(170 - mouseX*1.2,-100 - mouseY*0.25);
    
    //Loop around
    vertex(500 - mouseX*1.2,-100 - mouseY*0.25);
    vertex(500 - mouseX*1.2,500 - mouseY*0.25);
  endShape(CLOSE);
  
//Foreground RIGHT (Tree, Bushes)
//Added 900 to translate and then mirror foreground, increasing efficiency instead of manually typing in the numbers
  fill(0,0,0);
  beginShape();
    vertex(900 + 30 - mouseX*1.2,500 - mouseY*0.25);
    vertex(900 + 30 - mouseX*1.2,350 - mouseY*0.25);
    
    vertex(900 + -0 - mouseX*1.2 + sin(frameCount*0.1),325 - mouseY*0.25);
    vertex(900 + -20 - mouseX*1.2,350 - mouseY*0.25);
    vertex(900 + -40 - mouseX*1.2,330 - mouseY*0.25);
    vertex(900 + -50 - mouseX*1.2,355 - mouseY*0.25);
    vertex(900 + -65 - mouseX*1.2,360 - mouseY*0.25);
    vertex(900 + -72 - mouseX*1.2,357 - mouseY*0.25);
    vertex(900 + -80 - mouseX*1.2,340 - mouseY*0.25);
    vertex(900 + -95 - mouseX*1.2,320 - mouseY*0.25);
    vertex(900 + -110 - mouseX*1.2,337 - mouseY*0.25);
    vertex(900 + -120 - mouseX*1.2,350 - mouseY*0.25);
    vertex(900 + -140 - mouseX*1.2,340 - mouseY*0.25);
    vertex(900 + -165 - mouseX*1.2,325 - mouseY*0.25);
    vertex(900 + -158 - mouseX*1.2,340 - mouseY*0.25);
    vertex(900 + -170 - mouseX*1.2,355 - mouseY*0.25);
    vertex(900 + -180 - mouseX*1.2,340 - mouseY*0.25);
    vertex(900 + -210 - mouseX*1.2,320 - mouseY*0.25);
    vertex(900 + -200 - mouseX*1.2,340 - mouseY*0.25);
    vertex(900 + -220 - mouseX*1.2,365 - mouseY*0.25);
    vertex(900 + -240 - mouseX*1.2,350 - mouseY*0.25);
    vertex(900 + -240 - mouseX*1.2,320 - mouseY*0.25);
    vertex(900 + -260 - mouseX*1.2,345 - mouseY*0.25);
    vertex(900 + -280 - mouseX*1.2,340 - mouseY*0.25);
    vertex(900 + -310 - mouseX*1.2,320 - mouseY*0.25);
    vertex(900 + -300 - mouseX*1.2,345 - mouseY*0.25);
    vertex(900 + -310 - mouseX*1.2,350 - mouseY*0.25);
    vertex(900 + -320 - mouseX*1.2,345 - mouseY*0.25);
    vertex(900 + -330 - mouseX*1.2,310 - mouseY*0.25);
    vertex(900 + -340 - mouseX*1.2,335 - mouseY*0.25);
    vertex(900 + -360 - mouseX*1.2,335 - mouseY*0.25);
    vertex(900 + -380 - mouseX*1.2,220 - mouseY*0.25);
    vertex(900 + -380 - mouseX*1.2,160 - mouseY*0.25);
    vertex(900 + -360 - mouseX*1.2,80 - mouseY*0.25);
    vertex(900 + -355 - mouseX*1.2,60 - mouseY*0.25);
    vertex(900 + -340 - mouseX*1.2,40 - mouseY*0.25);
    vertex(900 + -310 - mouseX*1.2,30 - mouseY*0.25);
    vertex(900 + -300 - mouseX*1.2,20 - mouseY*0.25);
    vertex(900 + -260 - mouseX*1.2,10 - mouseY*0.25);
    vertex(900 + -230 - mouseX*1.2,10 - mouseY*0.25);
    vertex(900 + -200 - mouseX*1.2,-30 - mouseY*0.25);
    
    //Above
    vertex(900 + -170 - mouseX*1.2,-100 - mouseY*0.25);
    
    //Loop around
    vertex(900 + -440 - mouseX*1.2,-100 - mouseY*0.25);
    vertex(900 + -440 - mouseX*1.2,500 - mouseY*0.25);
  endShape(CLOSE);
}