/* 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);
}