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(); } }