private void checkForBorderCollision() {
    // if the puck leaves the bottom of the screen
    if (puck.getCenter().y >= screenHeight) {
      puck.setSpeedX(0.0f);
      puck.setSpeedY(0.0f);
      fail = true;
    }
    // if the puck crashes against the wall

    float borderXLeft =
        (float) ((screenWidth * (screenHeight - 1.5 * puck.getCenter().y)) / (6 * screenHeight));
    float borderXRight = screenWidth - borderXLeft;

    if (puck.getCollisionRect().left <= borderXLeft) {

      puck.setSpeedX(-puck.getSpeedX() * 0.9f);
      puck.setPosX((int) (borderXLeft + 2));
      puck.playBarrierSound();
    }

    if (puck.getCollisionRect().right >= borderXRight) {
      puck.setSpeedX(-puck.getSpeedX() * 0.9f);
      puck.setPosX((int) (borderXRight - puck.getWidth() - 2));
      puck.playBarrierSound();
    }
  }