Forum de la communauté SFML

Aide => Fenêtrage => Discussion démarrée par: Rick_Cplusplus le Juillet 12, 2019, 10:13:13 am

Titre: Imbriquer des events, possible ou pas ?
Posté par: Rick_Cplusplus le Juillet 12, 2019, 10:13:13 am
Bonjour la communauté,

Je voudrais créer un déplacement de vue dans une fenêtre qui ressemble à du "drag and drop".
Le comportement attendu c'est :
sur un bouton (left) souris maintenu enfoncé, suivi d'un mouvement souris, récupérer le vecteur du déplacement souris, et déplacer la vue courante de ce vecteur tant que le bouton n'est pas relâché.

Or le tuto précise bien que event est une union ce que je traduis (peut être à tort) par : une instance de event ne peut traiter qu'un evenement à la fois.

Mais peut-on instancier 2 event (event1 et event2) et les imbriquer dans la même fenêtre via 2 pollEvent ?
Quelque chose comme ça :
sf::event event1;
sf::event event2;
while (fenetre.pollEvent(event1))
        {
        ...
        if (event1.type == sf::Event::MouseButtonPressed
        {
                while (fenetre.pollEvent(event2))
                        {
                                 ...
                        }
        }
        ...
 

Si oui, je tente l'implémentation (mais il y a peut être "plus simple" pour faire ça) :)
Si non, avez-vous une piste pour implémenter "autrement"' ? ::)
Salutations,

Rick.
Titre: Re: Imbriquer des events, possible ou pas ?
Posté par: G. le Juillet 12, 2019, 12:02:55 pm
Ça n'aurait aucun sens.

Pour faire ton truc, tu peux utiliser un bool que tu mets à true sur l'event MouseButtonPressed, sur l'event MouseMoved tu déplaces ta vue si le bool est à true, et sur MouseButtonReleased tu mets ton bool à false.
Titre: Re: Imbriquer des events, possible ou pas ?
Posté par: Rick_Cplusplus le Juillet 12, 2019, 02:42:15 pm
Ok vu !  ;)

C'est ce que je viens de faire et devinez ?
Ça marche parfaitement ! 8)

Merci Mister G.  :D
Rick.