should probably be
if(right < gameball.left|| left > gameball.right ||
top > gameball.bottom || bottom < gameball.top)
Assuming all your right, left, top, bottom variables are updating correctly for the player and ball.
and
void Ball::accelerate(Paddle PLAYER)
{
currentSpeed.y = (ballObject.getGlobalBounds().top
+ ballObject.getGlobalBounds().height / 2
- PLAYER.getRect().top
- PLAYER.getRect().height / 2) / 100;
}
seems to take the Y distance between the center of the ball and center of the player and divides it by 100 and sets the balls speed to that. 1)This makes no sense to do whatsoever as the ball would go slower the closer it vertically gets to the player and faster the further away. 2)unless you just randomly created this to make your job harder you probably shouldn't just copy/paste chuncks of code without knowing what they do