Forum de la communauté SFML

Général => Suggestions de nouvelles fonctionnalités => Discussion démarrée par: SagaEterna le Avril 19, 2012, 09:12:11 am

Titre: Obtenir la position de la molette de la souris avec la classe sf::Mouse
Posté par: SagaEterna le Avril 19, 2012, 09:12:11 am
Bonjour,
J'aimerai obtenir la position de la molette de la souris sans passer par les événements.
Une méthode de type getWheelPosition serait la bienvenue dans la classe sf::Mouse pour un accès direct à cette information.
SagaEterna
Titre: Re : Obtenir la position de la molette de la souris avec la classe sf::Mouse
Posté par: Laurent le Avril 19, 2012, 09:31:30 am
C'est quoi la position de la molette ? Où est le début ? Où est la fin ? C'est juste pas possible, tu peux uniquement avoir un déplacement relatif.
Titre: Re : Obtenir la position de la molette de la souris avec la classe sf::Mouse
Posté par: minirop le Avril 19, 2012, 09:41:06 am
une molette, c'est juste une roue qui tourne à l'infini (comme la roue d'une voiture). Elle n'a pas de position comme peut l'avoir un joystick ou le volant d'une voiture, car justement elle n'est pas "bornée".
Titre: Re : Obtenir la position de la molette de la souris avec la classe sf::Mouse
Posté par: SagaEterna le Avril 19, 2012, 10:30:05 am
Le méthode est effectivement mal choisie. :-[
Ne peut-on pas utiliser un 0 fictif ou obtenir le delta directement de la classe?
Ce n'est pas insurmontable, mais ça m'embête un peu de récupérer les informations de la souris via 2 manières différentes.
Titre: Re : Obtenir la position de la molette de la souris avec la classe sf::Mouse
Posté par: minirop le Avril 19, 2012, 11:42:14 am
la seule manière serait d'initialiser une variable à 0 au lancement de l'application et de faire +delta lors d'un "wheel up" et un -delta lors d'un "wheel down" (par exemple)
Titre: Re : Obtenir la position de la molette de la souris avec la classe sf::Mouse
Posté par: SagaEterna le Avril 20, 2012, 08:19:40 am
Ou traiter le "wheel up" et le "wheel down" comme des boutons.
Cela permet d'affecter plus facilement ces interactions à des actions.
Titre: Re : Obtenir la position de la molette de la souris avec la classe sf::Mouse
Posté par: Laurent le Avril 20, 2012, 08:26:47 am
Citer
Ou traiter le "wheel up" et le "wheel down" comme des boutons.
Cela permet d'affecter plus facilement ces interactions à des actions.
En quoi est-ce que cela changerait quelque chose ? Et puis ils n'apparaitraient quasiment jamais "pressed".
Titre: Re : Obtenir la position de la molette de la souris avec la classe sf::Mouse
Posté par: SagaEterna le Avril 20, 2012, 02:26:53 pm
Citer
En quoi est-ce que cela changerait quelque chose ? Et puis ils n'apparaitraient quasiment jamais "pressed".

A obtenir l'état complet de la souris à l'aide de la classe sf::Mouse.
Actuellement pour un joystick, on peut obtenir l'état de tous les éléments via les événements ou via la classe
sf::Joystick, je ne trouve pas incohérent d'avoir la même chose pour la souris.

Lorsqu'on crée une action map, cela évite de devoir créer une classe supplémentaire pour gérer la souris dans son ensemble et qui récupère les événements liés à la molette dans la boucle et les autres via la classe sf::Mouse.

Enfin, je reconnais que ça n'est pas indispensable! C'est finalement - pour moi - juste plus esthétique. ;)
Titre: Re : Obtenir la position de la molette de la souris avec la classe sf::Mouse
Posté par: Laurent le Avril 20, 2012, 02:34:36 pm
Ma question était plus précise, je te demandais en quoi ceci :
Citer
traiter le "wheel up" et le "wheel down" comme des boutons.
aiderait en quoique ce soit à gérer un état absolu de la molette.
Titre: Re : Obtenir la position de la molette de la souris avec la classe sf::Mouse
Posté par: SagaEterna le Avril 20, 2012, 03:43:45 pm
Citer
...aiderait en quoique ce soit à gérer un état absolu de la molette.

Ah, pardon pour la mauvaise compréhension :-[

L'avantage de les traiter comme des boutons est de ne pas modifier l'interface de la classe actuelle.
De plus,  on a moins de type de source d'entré (boutons et axes pour reprendre l'analogie avec le joystick) à gérer.
On simule le delta = +1 par le wheelup et le -1 par le wheeldown.
Par contre, on perd de l'information si l'utilisateur arrive à tourner la molette de deux crans entre deux mises à jour...

En écrivant le paragraphe ci-dessus, je me demande pourquoi ne pas plutôt gérer comme un troisième axe de la souris.
Dans ce cas, on ne perd pas d'information, mais on doit modifier l'interface de la classe.
Titre: Re : Obtenir la position de la molette de la souris avec la classe sf::Mouse
Posté par: Laurent le Avril 20, 2012, 04:00:46 pm
Citer
En écrivant le paragraphe ci-dessus, je me demande pourquoi ne pas plutôt gérer comme un troisième axe de la souris.
C'est mieux que de le gérer comme un bouton (ce qui ne marcherait pas), mais ça ne change rien au fait que la molette n'a pas de position absolue.