Your browser does not support the canvas tag.

previous        Show / Hide Source        Download        next
float tileY;
float tileX;
float Spacing = 10;
float freddyY;
float freddyX;
float freddySpeed=10;
float fbX;





void setup() {
  size(400, 400);
  frameRate(60);
  freddyX=175;
  freddyY=140;
  fbX=170;
}

void draw() {
  background (46,42,84);

  // creating the floor
  noStroke();
  rectMode(CORNERS);
  fill(84, 62, 62);
  rect(0, 300, 400, 400);

  tileY=300;

  // this is the loop that creates the wooden floor 
  while (tileY <= height) {
    strokeWeight(2);
    stroke(41, 40, 39);
    line(tileX, tileY, tileX+width, tileY);
    tileY = tileY + Spacing;
  }


// this allows freddy to move according to mouseY
  if (mousePressed==true) {
    if (mouseY<=280 && mouseY>=20) {
      freddyY=mouseY;
    }
  }

// this allows for freddy to either fall unto x=140 or return to it and start to bounce by default 
  if (mousePressed==false) {
    freddyY -= freddySpeed * 0.1;
    if (freddyY >= 140) {
      freddySpeed = 15;
    }
  }
// this is what allows the eyes of the box to follow mouseX but also stay within a restricted area 
  if (keyPressed==true) {
    if (mouseX>= 160 && mouseX <= 180) {
     fbX=mouseX;
    }
   
  }

  freddySpeed -= 1;
  freddy();
  freddyBox();
}


void freddy() {
  ////////FREDDY//////////////////////


  // FREDDY'S HEAD
  fill(255, 159, 25);
  ellipseMode(CENTER);
  ellipse(freddyX, freddyY-55, 50, 50);


  //FREDDY'S EYES
  noStroke();
  fill(255);
  ellipse(freddyX-10, freddyY-60, 10, 20);
  ellipse(freddyX+10, freddyY-60, 10, 20);
  fill(0);
  ellipse(freddyX-10, freddyY-60, 10, 10);
  ellipse(freddyX+10, freddyY-60, 10, 10);



  // FREDDY'S HAT
  strokeWeight(1);
  stroke(89, 9, 178);
  fill(9, 113, 178);
  rect(freddyX-15, freddyY-100, freddyX+15, freddyY-70);
  rect(freddyX-35, freddyY-80, freddyX+35, freddyY-70);


  // FREDDY'S SMILE
  noStroke();
  //ellipse(175, 95, 20, 20);
  fill(255);
  arc(freddyX, freddyY-45, 20, 20, 0, PI);

  // NECK AND BODY

  fill(255, 159, 25);
  rectMode(CENTER);
  noStroke();
  rect(freddyX, freddyY-25, 10, 10);
  strokeWeight(1);
  stroke(89, 9, 178);
  fill(9, 113, 178);
  ellipse(freddyX-45, freddyY-15, 50, 10);
  ellipse(freddyX+45, freddyY-15, 50, 10);
  rect(freddyX, freddyY+30, 10, 35);
  rect(freddyX, freddyY, 60, 50);
}
void freddyBox() {
  //// FREDDY'S BOX/////
  strokeWeight(3);
  stroke(51, 40, 39);
  fill(84, 66, 64);
  rect(170, 250, 150, 150);
  fill(255);
  rect(140, 220, 50, 50);
  rect(200, 220, 50, 50);
  triangle(random (105,120), 260, 170, 310, random(220,230), 260);
  fill(0);
  rect(fbX-30, 215, 20, 40);
  rect(fbX+30, 215, 20, 40);
}
void mouseReleased() {
  freddySpeed=0;
}