Your browser does not support the canvas tag.

previous        Show / Hide Source        Download        next
/* Allie Arnott
Falling Death
Assignment 2 Object Oriented Toy */

//initializing objects by level, assign each object number for level
player playerBlock;
//level 1
red_circle leveloneobjectone;
//level 2
red_block leveltwoobjectone;
//level 3
yellow_block levelthreeobjectone;
//level 4
red_block levelfourobjectone;
//level 5
red_block levelfiveobjectone;
green_block levelfiveobjecttwo;
red_circle levelfiveobjectthree;
yellow_block levelfiveobjectfour;
//level 6
yellow_block levelsixobjectone;
red_circle levelsixobjecttwo;
green_block levelsixobjectthree;
red_block levelsixobjectfour;
//level 7
red_circle levelsevenobjectone;
red_block levelsevenobjecttwo;
blue_block levelsevenobjectthree;
//level 8
red_block leveleightobjectone;
blue_block leveleightobjecttwo;
//level 9
blue_block levelnineobjectone;
//level 10
red_block leveltenobjectone;
blue_block leveltenobjecttwo;

void setup()
{
  //window size
  size(400, 400);
  
  //remove cursor
  noCursor();
  
  //removes stroke
  noStroke();
  
  //sets up each object
  
  //level 1
  leveloneobjectone=new red_circle(375, 50, 100);
  //level 2
  leveltwoobjectone=new red_block(75, 150, 125, 200);
  //level 3
  levelthreeobjectone=new yellow_block(375, 200, 400, 300);
  //level 4
  levelfourobjectone=new red_block(333, 382, 375, 400);
  //level 5
  levelfiveobjectone=new red_block(333,400, 375, 416);
  levelfiveobjecttwo=new green_block(333, 466, 375, 500);
  levelfiveobjectthree=new red_circle(150, 450, 50);
  levelfiveobjectfour=new yellow_block(0, 450, 25, 500);
  //level 6
  levelsixobjectone=new yellow_block(0, 500, 25, 550);
  levelsixobjecttwo=new red_circle(200, 550, 100);
  levelsixobjectthree=new green_block(333, 500, 375, 533);
  levelsixobjectfour=new red_block(333, 582, 375, 600);
  //level 7
  levelsevenobjectone=new red_circle(150, 650, 50);
  levelsevenobjecttwo=new red_block(333, 600, 375, 616);
  levelsevenobjectthree= new blue_block(375, 600, 400, 700);
  //level 8
  leveleightobjectone= new red_block(25, 733, 100, 766);
  leveleightobjecttwo= new blue_block(375, 700, 400, 800);
  //level 9
  levelnineobjectone= new blue_block(375, 800, 400, 900);
  //level 10
  leveltenobjectone= new red_block(100, 933, 150, 1000);
  leveltenobjecttwo= new blue_block(375, 900, 400, 933);
  
  //create player
  playerBlock= new player(35, 35, 375, 600, 400, 933, 375, 200, 400, 300, 25, 450, 0, 550);
}

void draw(){
  //draw background
  fill(250);
  rectMode(CORNERS);
  rect(0,0,400,400);
  //draw level one (specifically so the red circle isnt infront of the edges
  levelonecall();
  //draw edges
  fill(#5405AF);
  rectMode(CORNERS);
  rect(0,0, 25, 400);
  rect (400,0, 375, 400);
  
  //draw everything that is shown on screen
  leveltwocall();
  levelthreecall();
  levelfourcall();
  levelfivecall();
  levelsixcall();
  levelsevencall();
  leveleightcall();
  levelninecall();
  leveltencall();
  
  //checks if player is pushing mouse button
  keyReleased();
  keyPressed();
  //draws player
  playerBlock.playerDisplay();
  //shows damage taken by player
  damage();
  displaydamage();
  //stops player from falling off screen
  playerBlock.playerCollideEdge();
  //updates player velocity
  playerBlock.playerJump();
  playerBlock.playerFall();
  //checks if endstate has been triggered
  endscreen();
}

boolean jump;
int damageTaken = 0;
boolean endstate=false;

//makes the jump var to true or false for player class
void mouseClicked(){
      jump = true;
}

//graphics of the damage counter
void displaydamage(){
  fill(#3C2CFF, 192);
  rect(95, 0, 400, 35);
  fill(0);
  textSize(32);
  text("Damage Taken:" + damageTaken, 100, 30);
  if (damageTaken > 100){
    endstate = true;
  }
}

//graphics of the end screen
void endscreen (){
  if (endstate == true){
    fill(#525252);
    rectMode(CORNERS);
    rect(0,0, 400, 400);
    fill(250);
    textSize(50);
    text("Game Over", 80, 170);
  }
}

//function for damage taken
void damage(){
  //level 1 damage
  if ((playerBlock.playerTop >= (leveloneobjectone.positionCenter.y - leveloneobjectone.circleRadius))
      && (playerBlock.playerBottom <= (leveloneobjectone.positionCenter.y + leveloneobjectone.circleRadius))) {
        if ((playerBlock.playerLeft >= (leveloneobjectone.positionCenter.x - leveloneobjectone.circleRadius))
        && (playerBlock.playerRight <= (leveloneobjectone.positionCenter.x + leveloneobjectone.circleRadius))){
          damageTaken = damageTaken + 1;
        }
      }
      //level two damage
  if ((playerBlock.playerBottom >= leveltwoobjectone.positionTopLeft.y) && (playerBlock.playerTop <= leveltwoobjectone.positionBottomRight.y)){
   if ((playerBlock.playerRight >= leveltwoobjectone.positionTopLeft.x) && (playerBlock.playerLeft <= leveltwoobjectone.positionBottomRight.x)){
     damageTaken = damageTaken + 1;
   }
  }
  //levelfour damage
  if ((playerBlock.playerBottom >= levelfourobjectone.positionTopLeft.y) && (playerBlock.playerTop <= levelfourobjectone.positionBottomRight.y)){
   if ((playerBlock.playerRight >= levelfourobjectone.positionTopLeft.x) && (playerBlock.playerLeft <= levelfourobjectone.positionBottomRight.x)){
     damageTaken = damageTaken + 1;
   }
  }
  //level five damage
  if ((playerBlock.playerBottom >= levelfiveobjectone.positionTopLeft.y) && (playerBlock.playerTop <= levelfiveobjectone.positionBottomRight.y)){
   if ((playerBlock.playerRight >= levelfiveobjectone.positionTopLeft.x) && (playerBlock.playerLeft <= levelfiveobjectone.positionBottomRight.x)){
     damageTaken = damageTaken + 1;
   }
  }
  if ((playerBlock.playerTop >= (levelfiveobjectthree.positionCenter.y - levelfiveobjectthree.circleRadius))
      && (playerBlock.playerBottom <= (levelfiveobjectthree.positionCenter.y + levelfiveobjectthree.circleRadius))) {
        if ((playerBlock.playerLeft >= (levelfiveobjectthree.positionCenter.x - levelfiveobjectthree.circleRadius))
        && (playerBlock.playerRight <= (levelfiveobjectthree.positionCenter.x + levelfiveobjectthree.circleRadius))){
          damageTaken = damageTaken + 1;
        }
      }
  if ((playerBlock.playerBottom >= levelfiveobjecttwo.positionTopLeft.y) && (playerBlock.playerTop <= levelfiveobjecttwo.positionBottomRight.y)){
   if ((playerBlock.playerRight >= levelfiveobjecttwo.positionTopLeft.x) && (playerBlock.playerLeft <= levelfiveobjecttwo.positionBottomRight.x)){
     damageTaken = damageTaken -2; //removes damage when on green space
   }
  }
      //level six damage
  if ((playerBlock.playerTop >= (levelsixobjecttwo.positionCenter.y - levelsixobjecttwo.circleRadius))
      && (playerBlock.playerBottom <= (levelsixobjecttwo.positionCenter.y + levelsixobjecttwo.circleRadius))) {
        if ((playerBlock.playerLeft >= (levelsixobjecttwo.positionCenter.x - levelsixobjecttwo.circleRadius))
        && (playerBlock.playerRight <= (levelsixobjecttwo.positionCenter.x + levelsixobjecttwo.circleRadius))){
          damageTaken = damageTaken + 1;
        }
      }
  if ((playerBlock.playerBottom >= levelsixobjectfour.positionTopLeft.y) && (playerBlock.playerTop <= levelsixobjectfour.positionBottomRight.y)){
   if ((playerBlock.playerRight >= levelsixobjectfour.positionTopLeft.x) && (playerBlock.playerLeft <= levelsixobjectfour.positionBottomRight.x)){
     damageTaken = damageTaken + 1;
   }
  }
  if ((playerBlock.playerBottom >= levelsixobjectthree.positionTopLeft.y) && (playerBlock.playerTop <= levelsixobjectthree.positionBottomRight.y)){
   if ((playerBlock.playerRight >= levelsixobjectthree.positionTopLeft.x) && (playerBlock.playerLeft <= levelsixobjectthree.positionBottomRight.x)){
     damageTaken = damageTaken -2; //removes damage when on green space
   }
  }
  //level seven damage
  if ((playerBlock.playerTop >= (levelsevenobjectone.positionCenter.y - levelsevenobjectone.circleRadius))
      && (playerBlock.playerBottom <= (levelsevenobjectone.positionCenter.y + levelsevenobjectone.circleRadius))) {
        if ((playerBlock.playerLeft >= (levelsevenobjectone.positionCenter.x - levelsevenobjectone.circleRadius))
        && (playerBlock.playerRight <= (levelsevenobjectone.positionCenter.x + levelsevenobjectone.circleRadius))){
          damageTaken = damageTaken + 1;
        }
      }
  if ((playerBlock.playerBottom >= levelsevenobjecttwo.positionTopLeft.y) && (playerBlock.playerTop <= levelsevenobjecttwo.positionBottomRight.y)){
   if ((playerBlock.playerRight >= levelsevenobjecttwo.positionTopLeft.x) && (playerBlock.playerLeft <= levelsevenobjecttwo.positionBottomRight.x)){
     damageTaken = damageTaken + 1;
   }
  }
  //level eight damage
  if ((playerBlock.playerBottom >= leveleightobjectone.positionTopLeft.y) && (playerBlock.playerTop <= leveleightobjectone.positionBottomRight.y)){
   if ((playerBlock.playerRight >= leveleightobjectone.positionTopLeft.x) && (playerBlock.playerLeft <= leveleightobjectone.positionBottomRight.x)){
     damageTaken = damageTaken + 1;
   }
  }
  //level ten damage
  if ((playerBlock.playerBottom >= leveltenobjectone.positionTopLeft.y) && (playerBlock.playerTop <= leveltenobjectone.positionBottomRight.y)){
   if ((playerBlock.playerRight >= leveltenobjectone.positionTopLeft.x) && (playerBlock.playerLeft <= leveltenobjectone.positionBottomRight.x)){
     damageTaken = damageTaken + 1;
   }
  }
}


//function to call and draw level one
void levelonecall (){
  //draws 
  leveloneobjectone.display();
  //updates locations
  leveloneobjectone.move();
}

//functon to call and draw all level two
void leveltwocall (){
  leveltwoobjectone.display();
  leveltwoobjectone.move();
}

//function to call and draw all level three
void levelthreecall(){
  levelthreeobjectone.display();
  levelthreeobjectone.move();
}

//function to call and draw all level four
void levelfourcall(){
  levelfourobjectone.display();
  levelfourobjectone.move();
}

//function to call and draw all level five
void levelfivecall(){
  levelfiveobjectone.display();
  levelfiveobjecttwo.display();
  levelfiveobjectthree.display();
  levelfiveobjectfour.display();
  
  levelfiveobjectone.move();
  levelfiveobjecttwo.move();
  levelfiveobjectthree.move();
  levelfiveobjectfour.move();
}

//function to call and draw all level six
void levelsixcall(){
  levelsixobjectone.display();
  levelsixobjecttwo.display();
  levelsixobjectthree.display();
  levelsixobjectfour.display();
  
  levelsixobjectone.move();
  levelsixobjecttwo.move();
  levelsixobjectthree.move();
  levelsixobjectfour.move();
}

//function to call and draw all level seven
void levelsevencall(){
  levelsevenobjectone.display();
  levelsevenobjecttwo.display();
  levelsevenobjectthree.display();
  
  levelsevenobjectone.move();
  levelsevenobjecttwo.move();
  levelsevenobjectthree.move();
}

//function to call and draw all level eight
void leveleightcall (){
  leveleightobjectone.display();
  leveleightobjecttwo.display();
  
  leveleightobjectone.move();
  leveleightobjecttwo.move();
}

//function to call and draw all level nine
void levelninecall (){
  levelnineobjectone.display();
  levelnineobjectone.move();
}

//function to call and draw all level ten
void leveltencall(){
  leveltenobjectone.display();
  leveltenobjecttwo.display();
  
  leveltenobjectone.move();
  leveltenobjecttwo.move();
}

//CURRENT WORK IN PLAYER CLASS TAB
class blue_block {
  PVector positionTopLeft;
  PVector positionBottomRight;
  PVector velocity;
  PVector moveToBottom;


  //constructor - initialization
  blue_block(float blockTopLeftX, float blockTopLeftY, float blockBottomRightX, float blockBottomRightY){
    positionTopLeft = new PVector(blockTopLeftX, blockTopLeftY);
    positionBottomRight = new PVector(blockBottomRightX, blockBottomRightY);
    velocity = new PVector(0, 5);
    moveToBottom = new PVector(0, 900);
  }
  
  //updates location of block
  void move(){
    if (positionBottomRight.y > 0){
      positionTopLeft.sub(velocity);
      positionBottomRight.sub(velocity);
    }
    else if (positionBottomRight.y <= 0){
      positionTopLeft.add(moveToBottom);
      positionBottomRight.add(moveToBottom);
    }
  }
  //draws block
  void display(){
    if ((positionTopLeft.y < 400) && (positionBottomRight.y > 0)){
      fill(124, 226, 250); 
      rectMode(CORNERS);
      rect(positionTopLeft.x, positionTopLeft.y, positionBottomRight.x, positionBottomRight.y);
    }
    else {}
  }
}
class green_block {
  PVector positionTopLeft;
  PVector positionBottomRight;
  PVector velocity;
  PVector moveToBottom;


  //constructor - initialization
  green_block(float blockTopLeftX, float blockTopLeftY, float blockBottomRightX, float blockBottomRightY){
    positionTopLeft = new PVector(blockTopLeftX, blockTopLeftY);
    positionBottomRight = new PVector(blockBottomRightX, blockBottomRightY);
    velocity = new PVector(0, 5);
    moveToBottom = new PVector(0, 900);
  }
  //updates location of block
  void move(){
    if (positionBottomRight.y > 0){
      positionTopLeft.sub(velocity);
      positionBottomRight.sub(velocity);
    }
    else if (positionBottomRight.y <= 0){
      positionTopLeft.add(moveToBottom);
      positionBottomRight.add(moveToBottom);
    }
  }
  //draws block
  void display(){
    if ((positionTopLeft.y < 400) && (positionBottomRight.y > 0)){
      fill(124, 250, 154); 
      rectMode(CORNERS);
      rect(positionTopLeft.x, positionTopLeft.y, positionBottomRight.x, positionBottomRight.y);
    }
    else {}
  }
}
class player {

  PVector playerPosition;
  PVector playerVelocity;
  PVector IceTop;
  PVector IceBottom;
  PVector HoneyOneTop;
  PVector HoneyOneBottom;
  PVector HoneyTwoTop;
  PVector HoneyTwoBottom;
  PVector backgroundMovement;
  int playerTop;
  int playerBottom;
  int playerRight;
  int playerLeft;

  player(float tempplayerPosX, float tempplayerPosY, float tempIceTopX, float tempIceTopY, float tempIceBottomX, float tempIceBottomY, float tempHoneyOneTopX, float tempHoneyOneTopY, float tempHoneyOneBottomX, 
    float tempHoneyOneBottomY, float tempHoneyTwoTopX, float tempHoneyTwoTopY, float tempHoneyTwoBottomX, float tempHoneyTwoBottomY) {
    //assigning player pos
    playerPosition= new PVector(tempplayerPosX, tempplayerPosY);
    playerVelocity= new PVector(0, 0.5);
    IceTop= new PVector(tempIceTopX, tempIceTopY);
    IceBottom= new PVector(tempIceBottomX, tempIceBottomY);
    HoneyOneTop = new PVector(tempHoneyOneTopX, tempHoneyOneTopY);
    HoneyOneBottom = new PVector(tempHoneyOneBottomX, tempHoneyOneBottomY);
    HoneyTwoTop = new PVector(tempHoneyTwoTopX, tempHoneyTwoTopY);
    HoneyTwoBottom = new PVector(tempHoneyTwoBottomX, tempHoneyTwoBottomY);
    playerBottom= int(tempplayerPosY) + 10;
    playerTop= int(tempplayerPosY) - 10;
    playerRight= int(tempplayerPosX) + 10;
    playerLeft= int(tempplayerPosX) - 10;
    backgroundMovement = new PVector(0, 5);
  }
  void playerFall() {
    // updates the background location
    //HoneyOneTop = HoneyOneTop.sub (backgroundMovement);
    //HoneyOneBottom = HoneyOneBottom.sub (backgroundMovement);
    //HoneyTwoTop = HoneyTwoTop.sub (backgroundMovement);
    //HoneyTwoBottom = HoneyTwoBottom.sub (backgroundMovement);

    HoneyOneTop.sub (backgroundMovement);
    HoneyOneBottom.sub (backgroundMovement);
    HoneyTwoTop.sub (backgroundMovement);
    HoneyTwoBottom.sub (backgroundMovement);

    //IceTop = IceTop.sub (backgroundMovement);
    //IceBottom = IceBottom.sub (backgroundMovement);

    IceTop.sub (backgroundMovement);
    IceBottom.sub (backgroundMovement);


    //if player is ON the ice in levels 7, 8, & 9
    if ((playerBottom > IceTop.y) && (playerTop< IceBottom.y) && (playerRight == IceTop.x)) {
      //speed player fall on ice
      if ((playerBottom + playerVelocity.y) >= 400) {
        //does not move player down faster
        playerBottom = 400;
        playerTop = 380;
        playerPosition.y = 390;
      } else {
        // playerPosition = playerPosition.add(playerVelocity.x, 1.5);
        playerPosition.add(playerVelocity.x, 1.5);


        playerTop= int(playerPosition.y) - 10;
        playerBottom= int(playerPosition.y)+ 10;
        playerLeft= int(playerPosition.x) - 10;
        playerRight= int(playerPosition.x) + 10;
      }
    }
    //if player is on honey level 3
    else if ((playerBottom > HoneyOneTop.y) && (playerTop < HoneyOneBottom.y) && (playerRight == HoneyOneTop.x)) {
      //slow player fall on honey on right
      //if ((playerTop + (playerVelocity.mult(0.5)).y) <= 0) {
      if (playerTop + playerVelocity.y*0.5 <= 0) {
        //does not move player down faster
        playerBottom = 20;
        playerTop = 0;
        playerPosition.y = 10;
      } else {
        //playerPosition = playerPosition. add(playerVelocity.x, -0.75);
        playerPosition.add(playerVelocity.x, -0.75);
        playerTop= int(playerPosition.y) - 10;
        playerBottom= int(playerPosition.y)+ 10;
        playerLeft= int(playerPosition.x) - 10;
        playerRight= int(playerPosition.x) + 10;
      }
    } else if ((playerBottom > HoneyTwoTop.y) && (playerTop < HoneyOneBottom.y) && (playerLeft == HoneyTwoTop.x)) {
      //slows player fall on honey on left
      //if ((playerTop + (playerVelocity.mult(0.5)).y) <= 0) {
      if (playerTop + playerVelocity.y*.5 <= 0) {
        //does not move player up faster
        playerBottom = 20;
        playerTop = 0;
        playerPosition.y = 10;
      } else {
        //playerPosition = playerPosition. add(playerVelocity.x, -0.75);
        playerPosition. add(playerVelocity.x, -0.75);
        playerTop= int(playerPosition.y) - 10;
        playerBottom= int(playerPosition.y)+ 10;
        playerLeft= int(playerPosition.x) - 10;
        playerRight= int(playerPosition.x) + 10;
      }
    } else if (playerBottom == 400) {
      //checks if player is at bottom of screen and does nothing if they are
    } else if ((playerBottom + playerVelocity.y) >= 400) {
      //checks if player would reach or go beyond bottom of screen, and places them at bottom.
      playerBottom = 400;
      playerTop = 380;
      playerPosition.y = 390;
    } else {
      //player falls normally
      //playerPosition = playerPosition.add(playerVelocity);
      playerPosition.add(playerVelocity);
      playerTop= int(playerPosition.y) - 10;
      playerBottom= int(playerPosition.y)+ 10;
      playerLeft= int(playerPosition.x) - 10;
      playerRight= int(playerPosition.x) + 10;
    }
    if (IceBottom.y <= 0) {
      // moves ice back to bottom
      IceBottom.y = IceBottom.y + 900;
      IceTop.y = IceTop.y + 900;
    }
    if (HoneyOneBottom.y <= 0) {
      //moves HoneyOne down
      HoneyOneBottom.y = HoneyOneBottom.y + 900;
      HoneyOneTop.y = HoneyOneTop.y +900;
    }
    if (HoneyTwoBottom.y <= 0) {
      //moves HoneyTwo down
      HoneyTwoBottom.y = HoneyTwoBottom.y + 900;
      HoneyTwoTop.y = HoneyTwoTop.y + 900;
    }
  }

  void playerCollideEdge() {
    if (playerRight >= 375) {
      playerVelocity.x = 0;
      playerPosition.x = 365;
      playerTop= int(playerPosition.y) - 10;
      playerBottom= int(playerPosition.y)+ 10;
      playerLeft= int(playerPosition.x) - 10;
      playerRight= int(playerPosition.x) + 10;
    }
    if (playerLeft <= 25) {
      playerVelocity.x = 0;
      playerPosition.x = 35;
      playerTop= int(playerPosition.y) - 10;
      playerBottom= int(playerPosition.y)+ 10;
      playerLeft= int(playerPosition.x) - 10;
      playerRight= int(playerPosition.x) + 10;
    }
  }

  void playerJump() {
    if (jump == true) {
      if (playerLeft <= 25) {
        playerVelocity.x = 10;
        jump=false;
      } else if (playerRight >= 375) {
        playerVelocity.x = -10;
        jump=false;
      } else {
      }
    }
  }

  void playerDisplay() {
    if ((playerPosition.x > 35) && (playerPosition.x < 365)) {
      fill(#F7E870);
      rectMode(CORNERS);
      rect(playerLeft, playerTop, playerRight, playerBottom);
    } else if (playerLeft == 25) {
      fill(#F7E870);
      rectMode(CORNERS);
      rect(playerLeft, playerTop, (playerLeft + 15), playerBottom);
      triangle(playerLeft, playerTop, playerLeft, (playerTop - 10), (playerLeft + 15), playerTop);
      triangle(playerLeft, playerBottom, playerLeft, (playerBottom + 10), (playerLeft + 15), playerBottom);
    } else if (playerRight == 375) {
      fill(#F7E870);
      rectMode(CORNERS);
      rect(playerRight, playerTop, (playerRight -15), playerBottom);
      triangle(playerRight, playerTop, playerRight, (playerTop - 10), (playerRight - 15), playerTop);
      triangle(playerRight, playerBottom, playerRight, (playerBottom + 10), (playerRight - 15), playerBottom);
    }
  }
}
class red_block {
  PVector positionTopLeft;
  PVector positionBottomRight;
  PVector velocity;
  PVector moveToBottom;


  //constructor - initialization
  red_block(float blockTopLeftX, float blockTopLeftY, float blockBottomRightX, float blockBottomRightY){
    positionTopLeft = new PVector(blockTopLeftX, blockTopLeftY);
    positionBottomRight = new PVector(blockBottomRightX, blockBottomRightY);
    velocity = new PVector(0, 5);
    moveToBottom = new PVector(0, 900);
  }
  //updates location of block
  void move(){
    if (positionBottomRight.y > 0){
      positionTopLeft.sub(velocity);
      positionBottomRight.sub(velocity);
    }
    else if (positionBottomRight.y <= 0){
      positionTopLeft.add(moveToBottom);
      positionBottomRight.add(moveToBottom);
    }
  }
  //draws block
  void display(){
    if ((positionTopLeft.y < 400) && (positionBottomRight.y > 0)){
      fill(237, 57, 57); 
      rectMode(CORNERS);
      rect(positionTopLeft.x, positionTopLeft.y, positionBottomRight.x, positionBottomRight.y);
    }
    else {}
  }
}
class red_circle {
  PVector positionCenter;
  PVector velocity;
  float circleRadius;


  //constructor - initialization
  red_circle(float circleTopLeftX, float circleTopLeftY, float circleTempRadius){
    positionCenter = new PVector(circleTopLeftX, circleTopLeftY);
    velocity = new PVector(0, 5);
    circleRadius = circleTempRadius;
  }
  //updates location of block
  void move(){
    if ((positionCenter.y + circleRadius) <= 0) {
      positionCenter.add(0,900);
    }
    else {
      positionCenter.sub(velocity);
    }
  }
  //draws block
  void display(){
    if (((positionCenter.y - circleRadius) < 400) && ((positionCenter.y + circleRadius) > 0)){
      fill(237, 57, 57);
      ellipseMode(CENTER);
      ellipse(positionCenter.x, positionCenter.y, circleRadius, circleRadius);
    }
    else{
    }
  }
}
class yellow_block {
  PVector positionTopLeft;
  PVector positionBottomRight;
  PVector velocity;
  PVector moveToBottom;


  //constructor - initialization
  yellow_block(float blockTopLeftX, float blockTopLeftY, float blockBottomRightX, float blockBottomRightY){
    positionTopLeft = new PVector(blockTopLeftX, blockTopLeftY);
    positionBottomRight = new PVector(blockBottomRightX, blockBottomRightY);
    velocity = new PVector(0, 5);
    moveToBottom = new PVector(0, 900);
  }
  //updates location of block
  void move(){
    if (positionBottomRight.y > 0){
      positionTopLeft.sub(velocity);
      positionBottomRight.sub(velocity);
    }
    else if (positionBottomRight.y <= 0){
      positionTopLeft.add(moveToBottom);
      positionBottomRight.add(moveToBottom);
    }
  }
  //draws block
  void display(){
    if ((positionTopLeft.y < 400) && (positionBottomRight.y > 0)){
      fill(250, 238, 124);
      rectMode(CORNERS);
      rect(positionTopLeft.x, positionTopLeft.y, positionBottomRight.x, positionBottomRight.y);
    }
    else {}
  }
}