Bienvenue, Invité. Merci de vous connecter ou de vous inscrire.
Avez-vous perdu votre e-mail d'activation ?

Auteur Sujet: [résolu] getMousePos() et redimensionnement de la fenêtre  (Lu 1275 fois)

0 Membres et 1 Invité sur ce sujet

r0d

  • Jr. Member
  • **
  • Messages: 85
    • Voir le profil
[résolu] getMousePos() et redimensionnement de la fenêtre
« le: Septembre 25, 2015, 06:31:10 pm »
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 :)

« Modifié: Septembre 25, 2015, 08:45:47 pm par r0d »

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Laurent Gomila - SFML developer

r0d

  • Jr. Member
  • **
  • Messages: 85
    • Voir le profil
Re : getMousePos() et redimensionnement de la fenêtre
« Réponse #2 le: Septembre 25, 2015, 08:44:57 pm »
Merci Laurent, c'est exactement ce que je cherchais :)
J'avais pourtant bien fais le tour des tutos... désolé  :-[

 

anything