/// Spencer Johnston. Intro to Media Computation.
/// September 21st 2015.
//For desired effect, hold the mouse button and move the mouse
//from left to right.
void setup() {
size(400, 400);
background(220);
}
void draw(){
//Drawing the Origami callsign from Heavy Rain
background(mouseX/2);
drawOrigami(); //Drawing out and shading the indevidual triangles that make up the Origiami
agePaper(); //Adding a yellow tint to imply the deterioration of the paper
fill(200);
rect(0,240,500,240); //Ground
drawBlood(mouseX); //Adding the iconic blood splatter on the Origami, as well as changing the ground colour
}
void drawOrigami(){
stroke(0);
fill(255);
triangle(180, 200, 180, 160, 200, 180);
fill(200);
triangle(180, 160, 200, 180, 220, 160);
fill(150);
triangle(180, 200, 200, 180, 220, 200);
fill(255);
triangle(180, 200, 200, 220, 220, 200);
fill(200);
triangle(220, 240, 200, 220, 220, 200);
fill(200);
triangle(180, 200, 200, 220, 180, 240);
fill(200);
triangle(180, 200, 160, 220, 180, 240);
fill(255);
triangle(140, 240, 160, 220, 180, 240);
}
void agePaper(){
//It is not lost on me that this is the least efficient way
//to gradually change the colour of these triangles, but
//I am struggling to find another way.
stroke(0);
fill(210, 200, 150, mouseX/2);
triangle(180, 200, 180, 160, 200, 180);
triangle(180, 160, 200, 180, 220, 160);
triangle(180, 200, 200, 180, 220, 200);
triangle(180, 200, 200, 220, 220, 200);
triangle(220, 240, 200, 220, 220, 200);
triangle(180, 200, 200, 220, 180, 240);
triangle(180, 200, 160, 220, 180, 240);
triangle(140, 240, 160, 220, 180, 240);
}
void drawBlood(int x){
if(mousePressed == true){
noStroke();
fill(130,20,20, x);
triangle(220, 240, 200, 220, 220, 220);
rect(0,240,500,240);
}
}