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

Auteur Sujet: Obtenir la position de la molette de la souris avec la classe sf::Mouse  (Lu 4645 fois)

0 Membres et 1 Invité sur ce sujet

SagaEterna

  • Newbie
  • *
  • Messages: 7
    • Voir le profil
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

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re : Obtenir la position de la molette de la souris avec la classe sf::Mouse
« Réponse #1 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.
Laurent Gomila - SFML developer

minirop

  • Sr. Member
  • ****
  • Messages: 254
    • Voir le profil
    • http://dev.peyj.com
Re : Obtenir la position de la molette de la souris avec la classe sf::Mouse
« Réponse #2 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".

SagaEterna

  • Newbie
  • *
  • Messages: 7
    • Voir le profil
Re : Obtenir la position de la molette de la souris avec la classe sf::Mouse
« Réponse #3 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.

minirop

  • Sr. Member
  • ****
  • Messages: 254
    • Voir le profil
    • http://dev.peyj.com
Re : Obtenir la position de la molette de la souris avec la classe sf::Mouse
« Réponse #4 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)

SagaEterna

  • Newbie
  • *
  • Messages: 7
    • Voir le profil
Re : Obtenir la position de la molette de la souris avec la classe sf::Mouse
« Réponse #5 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.

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re : Obtenir la position de la molette de la souris avec la classe sf::Mouse
« Réponse #6 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".
Laurent Gomila - SFML developer

SagaEterna

  • Newbie
  • *
  • Messages: 7
    • Voir le profil
Re : Obtenir la position de la molette de la souris avec la classe sf::Mouse
« Réponse #7 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. ;)

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re : Obtenir la position de la molette de la souris avec la classe sf::Mouse
« Réponse #8 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.
Laurent Gomila - SFML developer

SagaEterna

  • Newbie
  • *
  • Messages: 7
    • Voir le profil
Re : Obtenir la position de la molette de la souris avec la classe sf::Mouse
« Réponse #9 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.

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re : Obtenir la position de la molette de la souris avec la classe sf::Mouse
« Réponse #10 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.
Laurent Gomila - SFML developer