class Element {
  
  PImage decorGreen;
  float posX, posY;
  float larg, haut;
  
  
  Element( float pos_X, float pos_Y ) {
     
    
    //decorGreen = loadImage("caillou1.png");
    posX = pos_X;
    posY = pos_Y;
    larg = height / 15;
    //height / 15;
    //width/20;
    haut = height / 15;
    //height / 15;
    //height/15;
   
  }
 
  //----------------
  
  void display() {
    
    push();
    //noStroke();
    stroke(180);
    noFill();
    //rect ( posX, posY, larg, haut );
    //imageMode(CENTER);
    //image(decorGreen, posX + larg/2, posY + haut/2 );
    pop();
  }
 
  //----------------
  
  void update( Map niveau) {
    
   posX +=niveau.move.x;
   posY +=niveau.move.y;
  }
  
  //----------------
  
  void collision( PVector pos, PVector vit, PVector hitBox ) {         
    
    if ( pos.x <= posX - hitBox.x/2 ) {
      if(pos.x + vit.x >= posX - hitBox.x/2 && pos.y + vit.y > posY - hitBox.y/2 && pos.y + vit.y < posY + haut + hitBox.y/2 ) {   
        if ( pos.x + vit.x >= posX - hitBox.x/2 && liz.right && liz.fallOn) {
        liz.rightLock = true;
        }
        vit.x = posX - hitBox.x/2 - pos.x;     
      }
    }
    if ( pos.x >= posX + larg + hitBox.x/2 ) {
      if( pos.x + vit.x <= posX + larg + hitBox.x/2 && pos.y + vit.y > posY - hitBox.y/2 && pos.y + vit.y < posY + haut + hitBox.y/2 ) {
        if ( pos.x + vit.x <= posX + larg + hitBox.x/2 && liz.left && liz.fallOn) {
        liz.leftLock = true;
        }
        vit.x = posX + larg + hitBox.x/2 - pos.x;
      }
    }
    if ( pos.y >= posY + haut + hitBox.y/2 ) {
      if( pos.y + vit.y <= posY + haut + hitBox.y/2 && pos.x + vit.x > posX - hitBox.x/2 && pos.x + vit.x < posX + larg + hitBox.x/2 ) {
        vit.y = posY + haut + hitBox.y/2 - pos.y;
        liz.vitSaut =  2;
      }
    }
    if ( pos.y <= posY - hitBox.y/2 ) {
      if(pos.y + vit.y >= posY - hitBox.y/2 && pos.x + vit.x > posX - hitBox.x/2 && pos.x + vit.x < posX + larg + hitBox.x/2 ) {
        vit.y = posY - hitBox.y/2 - pos.y;
        liz.sautOn = false;
        liz.fallOn = false;
        liz.sonOk = false;

      }
    }
  }
   
    //----------------
  
  void correction ( PVector pos, PVector hitBox ) {
    if ( pos.x + hitBox.x/2 > posX && pos.x + hitBox.x/2 < posX + larg/2 && pos.y - hitBox.y/2 > posY - hitBox.y && pos.y + hitBox.y/2 < posY + haut + hitBox.y ) {
      pos.x = constrain( pos.x, 0, posX - hitBox.x/2 - 1 );
    }
    if ( pos.x - hitBox.x/2 > posX + larg/2 && pos.x - hitBox.x/2 < posX + larg && pos.y - hitBox.y/2 > posY - hitBox.y && pos.y + hitBox.y/2 < posY + haut + hitBox.y ) {
      pos.x = constrain( pos.x, posX + larg + hitBox.x/2 + 1, width);
    }
    if ( pos.y + hitBox.y/2 > posY && pos.y + hitBox.y/2 < posY + haut/2 && pos.x - hitBox.x/2 > posX - hitBox.x && pos.x + hitBox.x /2 < posX + larg + hitBox.x) {
      pos.y = constrain( pos.y, 0, posY - hitBox.y/2  - 1);
    }
    if ( pos.y - hitBox.y/2 > posY + haut/2 && pos.y - hitBox.y/2 < posY + haut && pos.x - hitBox.x/2 > posX - hitBox.x && pos.x + hitBox.x /2 < posX + larg + hitBox.x) {
      pos.y = constrain( pos.y, posY + haut + hitBox.y/2 + 1, height);
    }
  }

  
}
