class Object {
  float x, y;
  HitBox hitBox;
  int top, bottom, left, right, centerH, centerV, topSensor, top_left, top_right, topSensor_left, topSensor_right, center_left, center_right, bottom_left, bottom_right, center_center, prev_bottom;
  boolean collided;
  
  int spriteOffsetX;
  int spriteOffsetY;
  
  float speedX, speedY;
  
  void update(){
    //move();
    hitBox.update(x, y);
    collide();
  }
  
  void move(){
    
  }
  
  void collide(){
    collided = false;
    if (hitBox.x > level.rightBorder - hitBox.width){
      x = level.rightBorder - hitBox.width - hitBox.offsetX;
      collided = true;
      speedX *= -1; 
    }
    if (hitBox.x < level.leftBorder){
      x = level.leftBorder - hitBox.offsetX;
      collided = true;
      speedX *= -1;
    }
    if (hitBox.y > level.bottomBorder - hitBox.height){
      y = level.bottomBorder - hitBox.height - hitBox.offsetY;
      collided = true;
      speedY *= -1;
    }
    if (hitBox.y < level.topBorder){
      y = level.topBorder - hitBox.offsetY;
      collided = true;
      speedY *= -1;
    }
  }
  
  //void getBounds() {
  //  topSensor=floor((y-(tsize+1))/tsize);
  //  top=floor((y-sizey)/tsize);
  //  centerV=floor((y-sizey/2)/tsize);
  //  bottom=floor(y/tsize);
  //  left=floor(x/tsize);
  //  centerH=floor((x+sizex/2)/tsize);
  //  right=floor((x+sizex)/tsize);

  //  if (left<0)left=0;
  //  if (left>w-1)left=w-1;

  //  if (centerH<0)centerH=0;
  //  if (centerH>w-1)centerH=w-1;

  //  if (right<0)right=0;
  //  if (right>w-1)right=w-1;

  //  if (top<0) top=0;
  //  if (top>h-1) top=h-1;

  //  if (topSensor<0) topSensor=0;
  //  if (topSensor>h-1) topSensor=h-1;

  //  if (centerV<0) centerV=0;
  //  if (centerV>h-1) centerV=h-1;

  //  if (bottom<0) bottom=0;
  //  if (bottom>h-1) bottom=h-1;


  //  top_left=left+w*top;
  //  top_right=right+w*top;
  //  topSensor_left=left+w*topSensor;
  //  topSensor_right=right+w*topSensor;
  //  center_left=left+w*centerV;
  //  center_right=right+w*centerV;
  //  bottom_left=left+w*bottom;
  //  bottom_right=right+w*bottom;
  //  center_center=centerH+w*centerV;
  //}

  //void colide() {
  //  getBounds();
  //  colidiuDir=false;
  //  colidiuEsq=false;
  //  canStand=true;
  //  //pes
  //  if (yspeed>0) {
  //    if (solido(bottom_left)==true || solido(bottom_right)==true) {
  //      caindo = false;
  //      canCancelJump = true;
  //      yspeed = 0;
  //      y = bottom*tsize-1;
  //    }

  //    else if (prev_bottom<bottom && (solidoTransponivel(bottom_left)==true || solidoTransponivel(bottom_right)==true)) {
  //      caindo = false;
  //      canCancelJump = true;
  //      yspeed = 0;
  //      y = bottom*tsize-1;
  //    }
  //  }
  //  //cabeça
  //  else if (yspeed<0) {
  //    if (solido(top_right)==true || solido(top_left)==true) {
  //      yspeed = -yspeed*0.1;
  //      y = (top+1)*tsize+sizey;
  //    }
  //    if (climbing==true && escalavel(center_center)==false) {
  //      yspeed = 0;
  //      y = (centerV+1)*tsize+sizey/2;
  //    }
  //  }
  //  if (solido(topSensor_right)==true || solido(topSensor_left)==true) {
  //    canStand=false;
  //  }

  //  x+=xspeed;
  //  getBounds();

  //  //esq
  //  if (xspeed<0) {
  //    if (solido(top_left)==true || solido(center_left)==true || solido(bottom_left)==true) {
  //      x = (left+1)*tsize;
  //      xspeed=0;
  //      colidiuEsq=true;
  //    }
  //  }
  //  //dir
  //  else if (xspeed>0) {
  //    if (solido(top_right)==true || solido(center_right)==true || solido(bottom_right)==true) {
  //      x = (right)*tsize-sizex-1;
  //      xspeed=0;
  //      colidiuDir=true;
  //    }
  //  }

  //  if (hasItem[7] && input.up.isDown==true && escalavel(center_center)==true && climbing==false) {
  //    startClimbing();
  //  }
  //  if (climbing==true && escalavel(center_center)==false)stopClimbing();
  //  if (agua(center_center)) {
  //    if (agua==false) setWaterBehavior();
  //  }
  //  else {
  //    if (agua==true) setLandBehavior();
  //  }

  //  prev_bottom=bottom;
  //}  
  
}