Bonjour,
Imaginons que j'ai une RenderWindow dans laquelle j'affiche un cercle de rayon r, de centre (x,y).
J'ai une petite fonction qui calcule si la souris passe dessus le cercle en question. Cette fonction, utilise la fonction statique: sf::Mouse::getPosition(myWindow), et calcule, en fonction de la position et du rayon du cercle, si la souris est au dessus ou non.
Problème: lorsque je resize la fenêtre, le calcul de cette fonction n'est plus valide, puisque le repère de coordonnées de la souris change, alors que la position et le rayon du cercle ne changent pas.
Je suis parvenu à contourner le problème mais la solution que j'ai trouvé ne me convient pas. Elle consiste à conserver en mémoire un ratio, qui représente le resize de la RenderWindow, puis d'appliquer ce ratio à chaque fois que j'appelle getPosition(). Cette solution est un peu lourde je trouve, mais aussi je perds de l'info à chaque resize, et si on resize la fenêtre trop souvent, le ratio finit par être faux (propagation de l'erreur).
Je viens ici pour vous demander s'il n'y aurait pas de solution plus simple, plus propre.
Merci