/*
"Shining Blade"
By: Michael Downey
Date: Sep. 21 2016
Interactivity: As the user moves the mouse downwards, the background darkens and light
beams begin to manifest from the tip of the blade. Said light beams move in various directions
as the mouse moves around the drawing, used altered sin/cos equations to create a less uniform
movement style. When the mouse is pressed, a pillar of light erupts around the knight, with
the moving light beams vanishing.
*/
void setup() {
size(400,400);
rectMode(CORNERS);
ellipseMode(CENTER);
}
void draw() {
background(0);
frameRate(60);
// Background Color
noStroke();
fill(0,185,255,(255-mouseY/2)); //Light-Dark Blue Fill
rect(0,0,400,400); //Draws Blue BG
// Ground
fill(6,90,0); //Set fill to Green
ellipse(200,400,400,200); //Ground
// Knight
// Back Arm
fill(84,125,193); //Dark Blue fill
quad(180,260,172,252,164,260,172,268); //Shoulder
quad(180,265,170,262,165,290,175,293); //Upper Arm
ellipse(167,293,15,15); //Elbow
quad(171,289,163,299,142,291,150,281); //Lower Arm
fill(73,108,167); //Darkest Blue fill
ellipse(146,285,15,15); //Glove
// Back Leg
fill(84,125,193); //Dark Blue fill
quad(172,300,188,303,180,328,164,325); //Upper Leg
ellipse (172,325,16,20); //Knee Joint
rect(180,328,164,350); //Lower Leg
fill(92,136,206); //Sets fill to a less dark blue
rect(180,350,155,358); //Foot
// Body
fill(97,145,224); //Blue Fill
rect(172,260,200,307); //Body
fill(255,223,152); //Peach Fill
ellipse(186,248,22,26); //Head
fill(104,157,240); //Lighter Blue Fill
rect(172,293,200,300); //Belt
// Front Leg
fill(111,165,255); //Light Blue fill
quad(200,302,190,302,187,325,203,325); //Upper Leg
rect(187,325,203,352); //Lower Leg
fill(139,184,255); //set fill color to lightest blue
rect(187,352,208,360); //foot
// Front Arm
fill(111,165,255); //Light Blue fill
quad(208,260,200,252,192,260,200,268); //Shoulder
quad(202,236,210,240,205,260,197,256); //Lower Arm
ellipse(207,237,9,12); //Elbow
quad(202,236,210,234,207,218,199,220); //Upper Arm
// Sword
fill(200); //Set fill color to lighter grey
triangle(200,140,195,150,205,150); //Sword Tip
fill(185); //Set fill color to light grey
rect(195,150,205,200); //Sword Blade
fill(206,0,0); //Set fill color to red
rect(180,200,220,205); //Sword Guard
fill(144,83,0); //set fill color to brown
rect(198,205,202,225); //Sword Hilt
fill(139,184,255); //set fill color to lightest blue
ellipse(200,215,15,15);
// Light Beams, Suggested by Iya Ilene/Diane Downey
stroke(255,255,255,(mouseY+5)); //White Stroke
strokeWeight(10); //Sets first beam width
line( 200,140,(200+100*sin(mouseX)),(140+100*cos(mouseX))); //Beam 1
strokeWeight(3); //Sets second beam width
line( 200,140,(200+120*sin(mouseY)),(140+120*cos(mouseY))); //Beam 2
strokeWeight(8); //Sets third beam width
line( 200,140,(200+160*sin(pmouseX)),(140+160*cos(pmouseY))); //Beam 3
strokeWeight(5); //Sets fourth beam width
line( 200,140,(200+50*sin(pmouseY)),(140+50*cos(pmouseX))); //Beam 4
/*(origin + line length * sin(mouse value)), followed by (origin + line length * cos(mouse value))
is the nature of the trigonomic functions used to create the spinning light effect present in the
drawing. It's performed by just leaving out the Radians.*/
}
//Click the mouse to create a large light pillar
void mousePressed() {
frameRate(5);
noStroke();
fill(0,94,127); //sets fill to dark blue
rect(0,0,400,400); //Draws Blue BG
// Ground redrawn
fill(6,90,0); //Set fill to Green
ellipse(200,400,400,200); //Ground
// Light Pillar
fill(255); //sets fill to white
ellipse(200,340,280,80);
rect(60,0,340,340);
// Knight redrawn
// Back Arm
fill(96,143,216); //Dark Blue fill
quad(180,260,172,252,164,260,172,268); //Shoulder
quad(180,265,170,262,165,290,175,293); //Upper Arm
ellipse(167,293,15,15); //Elbow
quad(171,289,163,299,142,291,150,281); //Lower Arm
fill(85,124,191); //Darkest Blue fill
ellipse(146,285,15,15); //Glove
// Back Leg
fill(96,143,216); //Dark Blue fill
quad(172,300,188,303,180,328,164,325); //Upper Leg
ellipse (172,325,16,20); //Knee Joint
rect(180,328,164,350); //Lower Leg
fill(104,153,229); //Sets fill to a less dark blue
rect(180,350,155,358); //Foot
// Body
fill(107,162,247); //Blue Fill
rect(172,260,200,307); //Body
fill(255,231,180); //Peach Fill
ellipse(186,248,22,26); //Head
fill(121,173,255); //Lighter Blue Fill
rect(172,293,200,300); //Belt
// Front Leg
fill(139,184,255); //Light Blue fill
quad(200,302,190,302,187,325,203,325); //Upper Leg
rect(187,325,203,352); //Lower Leg
fill(165,200,255); //set fill color to lightest blue
rect(187,352,208,360); //foot
// Front Arm
fill(139,184,255); //Light Blue fill
quad(208,260,200,252,192,260,200,268); //Shoulder
quad(202,236,210,240,205,260,197,256); //Lower Arm
ellipse(207,237,9,12); //Elbow
quad(202,236,210,234,207,218,199,220); //Upper Arm
// Sword
fill(209); //Set fill color to light grey
triangle(200,140,195,150,205,150); //Sword Tip
fill(209); //Set fill color to light grey
rect(195,150,205,200); //Sword Blade
fill(229,0,0); //Set fill color to red
rect(180,200,220,205); //Sword Guard
fill(167,95,0); //set fill color to brown
rect(198,205,202,225); //Sword Hilt
fill(165,200,255); //set fill color to lightest blue
ellipse(200,215,15,15);
}