Et tu la dessines pas ?
A chaque frame (tour de boucle principale) :
- tu bouges ta balle (et les autres trucs qui doivent bouger (raquettes, etc.))
- tu la dessines (et les autres trucs que tu veux dessiner (murs, raquettes, score, etc.)
- tu appelles display sur ta fenêtre
Là dans ton code il manque les 3/4
Tu peux créer un sf::Vector2f qui représente son déplacement, et à chaque frame tu déplaces (move) la balle de ce vecteur
Par exemple si tu bouges de (1.0f, 0) fera bouger la balle à droite d'un pixel (comme tu le fais, apparemment). Mais (1.0f, 0.4f) la fera bouger vers la droite d'un pixel et de 0.4 pixels vers le bas.
Pour changer la direction de la balle quand elle touche un mur ou une raquette, il suffit de modifier le vecteur.
Quand elle touche un mur (en haut ou en bas) tu veux inverser son déplacement vertical, donc le vecteur devient :
deplacement.y = -deplacement.y;
Quand elle touche une raquette, tu veux inverser son déplacement horizontal, si elle allait vers la droite tu veux la renvoyer à gauche et vice versa donc
deplacement.x = -deplacement.x;
Ça sera déjà un bon début.
Et tes questions sont vagues, pas précises.