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
-
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
-
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.
-
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".
-
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.
-
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)
-
Ou traiter le "wheel up" et le "wheel down" comme des boutons.
Cela permet d'affecter plus facilement ces interactions à des actions.
-
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".
-
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. ;)
-
Ma question était plus précise, je te demandais en quoi ceci :
traiter le "wheel up" et le "wheel down" comme des boutons.
aiderait en quoique ce soit à gérer un état absolu de la molette.
-
...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.
-
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.