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

Auteur Sujet: Les évènements  (Lu 5433 fois)

0 Membres et 1 Invité sur ce sujet

Basta

  • Newbie
  • *
  • Messages: 48
    • Voir le profil
    • E-mail
Les évènements
« le: Octobre 27, 2012, 01:59:29 pm »
Bonjour,
Tout d'abord : pourquoi le mouse wheel delta n'est pas accessible dans sf::Mouse ?

Je suggère de plus un accès aux évènements suivants depuis une instance de fenêtre :
sf::Event::MouseEntered, sf::Event::MouseLeft, sf::Event::GainedFocus, sf::Event::LostFocus, sf::Event::Resized et  sf::Event::Closed
Ceci dans le style :
window.mouseIn(), window.isFocused(), window.isResized(), window.isClosed()

Voilà voilà mais ce n'est qu'un avis de "newbie" :D.

Lynix

  • Sr. Member
  • ****
  • Messages: 403
    • Voir le profil
Re : Les évènements
« Réponse #1 le: Octobre 27, 2012, 02:58:30 pm »
Le delta, comme son nom l'indique, n'est qu'une modification, autrement dit, ça indique de combien la molette a tourné, mais elle n'a pas de valeur fixe, voilà pourquoi elle n'est pas disponible dans sf::Mouse.

Ensuite pour les fonctions :
window.mouseIn() : Dans quels cas en as-tu besoin ? Pourquoi ne pas simplement jouer avec un booléen selon les évènements ?
window.isFocused() : Même chose (Bien qu'ici je comprends que les besoins soient plus importants, donc une méthode window.hasFocus() ne serait pas de trop)
window.isResized() : Euh, quand est-ce que cette méthode doit-elle renvoyer true ? Tout le temps à partir du moment où la fenêtre a été redimensionnée jusqu'à l'appel de la méthode ? Les évènements servent à ça.

window.isClosed() : Ah si seulement on pouvait faire la négation de window.isOpen()... Oh wait

Basta

  • Newbie
  • *
  • Messages: 48
    • Voir le profil
    • E-mail
Re : Les évènements
« Réponse #2 le: Octobre 27, 2012, 03:56:06 pm »
Mais alors comment obtenir le mouse wheel delta à partir de sf::Mouse manuellement ?

Edit : mouseIn() : c'est vrai que l'on peut faire la vérification manuelle facilement
         (et que les autres fonctions sont assez accessoires mais me paraissaient plus logiques à utiliser)
« Modifié: Octobre 27, 2012, 03:59:09 pm par Basta »

Lynix

  • Sr. Member
  • ****
  • Messages: 403
    • Voir le profil
Re : Re : Les évènements
« Réponse #3 le: Octobre 27, 2012, 06:35:16 pm »
Mais alors comment obtenir le mouse wheel delta à partir de sf::Mouse manuellement ?

C'est simplement impossible, le seul moyen est d'avoir une variable entière, initialisée à zéro et qui est modifiée à chaque évènement MouseWheelMoved (Si ma mémoire est bonne).

Canadadry

  • Hero Member
  • *****
  • Messages: 1081
    • Voir le profil
Re : Re : Les évènements
« Réponse #4 le: Octobre 28, 2012, 07:31:15 pm »
Edit : mouseIn() : c'est vrai que l'on peut faire la vérification manuelle facilement

Comme pour les touche touche clavier, pourtant on a bien des isKeyPressed, cette fonction me parait autant justifiée. Pareil pour isFocused. L'autre pourrait renvoyer true quand l'utilisateur attrape un bord de la fenêtre.

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : Les évènements
« Réponse #5 le: Octobre 28, 2012, 08:43:28 pm »
C'est bien beau de demander plein de choses, mais il faut un minimum me les justifier ;)

Pour moi toutes ces fonctions ne serviraient pas à grand chose.  Le fait est que la classe sf::Window pourrait contenir un millier de fonctions ; je ne peux pas toutes les mettre, il faut faire un tri. Alors lancer des noms de nouvelles fonctions comme ça dans le vide, ça n'aura aucune chance de donner quoique ce soit :P
Laurent Gomila - SFML developer

Orwel

  • Full Member
  • ***
  • Messages: 208
    • Voir le profil
Re : Les évènements
« Réponse #6 le: Octobre 29, 2012, 09:30:12 pm »
Peut-être un module WindowPlus dans Thor?

Basta

  • Newbie
  • *
  • Messages: 48
    • Voir le profil
    • E-mail
Re : Les évènements
« Réponse #7 le: Octobre 30, 2012, 11:15:36 pm »
lancer des noms de nouvelles fonctions comme ça dans le vide, ça n'aura aucune chance de donner quoique ce soit :P

Mais je comptais bien ne pas les lancer dans le vide justement, même si j'écris à la légère, sinon je ne les aurais pas postées sur ce forum  :P.

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : Les évènements
« Réponse #8 le: Octobre 31, 2012, 08:20:23 am »
Citer
Mais je comptais bien ne pas les lancer dans le vide justement
Ce que je voulais dire c'est que... c'est ce que tu as fait. J'attends toujours les arguments qui sont censés me convaincre de les ajouter :P
Laurent Gomila - SFML developer

Basta

  • Newbie
  • *
  • Messages: 48
    • Voir le profil
    • E-mail
Re : Les évènements
« Réponse #9 le: Octobre 31, 2012, 12:11:23 pm »
les arguments

Alors des arguments, des arguments ... lorsqu'on utilise sf::Mouse sf::Keyboard et sf::Joystick, ces fonctions permettent par exemple de se passer de la boucle des évènement. Pour ce qui est de mouseWheel c'était à peu près dans la même optique, on doit gérer la molette dans une boucle d'évènements alors que l'on utilise une classe sf::Mouse, je trouve que ca fait un peut "je prends les boutons par ci, la molette par là".
Après au niveau technique je ne pense pas que cela puisse apporter quelque chose.

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : Les évènements
« Réponse #10 le: Octobre 31, 2012, 12:26:28 pm »
Citer
Pour ce qui est de mouseWheel c'était à peu près dans la même optique, on doit gérer la molette dans une boucle d'évènements alors que l'on utilise une classe sf::Mouse, je trouve que ca fait un peut "je prends les boutons par ci, la molette par là".
Pour la molette, ça a déjà été discuté de nombreuses fois, et résumé ici une N-ième fois : la molette n'a pas d'état propre, elle peut uniquement indiquer quand on tourne un cran (elle ne peut pas dire "je suis sur la position n° X). Contrairement à un bouton, qui peut dire à tout moment s'il est appuyé ou non.

Je reste ouvert aux discussions concernant les autres fonctions.
Laurent Gomila - SFML developer