Your browser does not support the canvas tag.

previous        Show / Hide Source        Download        next
float x = 100;
float y = 0;
float speed = 0;
float gravity = 0.1;
boolean movingRight = true;
boolean movingLeft = false;
float xPos = 1;

void setup() {
  size(400, 400);
  smooth();
}

void draw() {
  noCursor();
  background(90);
  //Floor
  fill(80);
  rect(0, 300, 400, 200);
  //Conditionals
  bounce();
  callGravity();
  resturant();
  ball();
  waitor();
  paddle();
}

void bounce() {
 // println(xPos);

  if (movingRight && xPos < 375) {
    xPos++;
  } else {
    movingRight = false;
    movingLeft = true;
  }
  if (movingLeft && xPos > 0) {
    xPos--;
  } else {
    movingRight = true;
    movingLeft = false;
  }
}
void callGravity() {
  y = y + speed;
  xPos = xPos + 0.1;
  speed = speed + gravity;
  if (y > height) {
    speed = speed * -0.95;
  }
}

void resturant() {
  //Trim
  fill(120);
  rect(0,300,400,5);
  //Chair#1
  fill(60);
  rect(80, 200, 10, 120);
  rect(80, 260, 50, 20);
  rect(120, 260, 10, 60);
  //Person#1
  fill(89, 104, 116);
  rect(90, 190, 20, 70);
  rect(130, 260, 20, 60);
  ellipse(120, 170, 40, 40);
  rect(110, 210, 30, 10);
  //Chair#2
  fill(60);
  rect(240, 200, 10, 120);
  rect(200, 260, 50, 20);
  rect(200, 260, 10, 60);
  //Person#2
  fill(70);
  rect(220, 190, 20, 70);
  rect(180, 260, 20, 60);
  ellipse(210, 170, 40, 40);
  rect(190, 210, 30, 10);
  //Table
  noStroke();
  fill(201);
  rect(110, 220, 110, 50);
  fill(180);
  triangle(110, 220, 100, 260, 110, 260);
  triangle(220, 220, 220, 260, 230, 260);
  fill(100);
  rect(150, 270, 30, 10);
  rect(160, 280, 10, 30);
 rect(150, 310, 30, 10); 
  //Chair#3
  fill(60);
  rect(330, 200, 10, 120);
  rect(330, 260, 50, 20);
  rect(370, 240, 10, 80);
  //Person#4
  fill(70);
  rect(340, 190, 20, 70);
  rect(380, 270, 20, 50);
  ellipse(370, 170, 40, 40);
  rect(360, 210, 30, 10);
  //table
  fill(201);
  rect(360, 220, 40, 50);
  fill(180);
  triangle(360,220, 360,260, 350,260);
  //Light
  fill(120);
  rect(160, 20, 10, 20);
  quad( 160,20, 170,20, 190,40, 140,40);
  triangle(400,20, 390,40, 400,40);
  fill(80);
  rect(160, 40, 10, 5);
  quad(164,0, 166,0, 164,20, 166,20);
  
  

}

void ball() {
  noStroke();
  fill(255);
  ellipse(xPos, y, 50, 50);
}


void waitor() {
  //Waitor
  noStroke();
  //Head
  fill(50);
  ellipse(60 + mouseX, 120, 40, 40);
  //Hands
  fill(50);
  rect(30+ mouseX, 180, 10, 10);
  rect(110+ mouseX, 120, 10, 10);  
  //Chest
  fill(200);
  rect(40+ mouseX, 140, 40, 80);
  //Tie
  fill(180, 69, 69);
  quad(60+ mouseX, 140, 55+ mouseX, 170, 60+ mouseX, 180, 65+ mouseX, 170);
  //Arms
  fill(200);
  quad(40+ mouseX, 140, 50+ mouseX, 150, 20+ mouseX, 180, 10+ mouseX, 170);
  quad(20+ mouseX, 160, 10+ mouseX, 170, 30+ mouseX, 190, 40+ mouseX, 180);
  quad(80+ mouseX, 140, 120+ mouseX, 140, 120+ mouseX, 150, 80+ mouseX, 160);
  rect(110+ mouseX, 130, 10, 20);
  //waist
  fill(50);
  rect(40+ mouseX, 200, 40, 20);
  //Legs
  fill(50);
  rect(40+ mouseX, 200, 10, 120);
  rect(70+ mouseX, 200, 10, 120);
  //Belt
  fill(60);
  rect(40+ mouseX, 200, 40, 10);
  //Feet
  fill(50);
  triangle(40+ mouseX, 310, 40+ mouseX, 320, 30+ mouseX, 320);
  triangle(80+ mouseX, 310, 80+ mouseX, 320, 90+ mouseX, 320);
}

void paddle() {
  fill(214);
  rect(mouseX + 90, 115, 55, 5);

  if (y > 90) {
    if (xPos <= mouseX + 300 && xPos >= mouseX +10) {
      //bounce
      speed = speed * -0.95;
    }
  }
}