Forum de la communauté SFML

Aide => Fenêtrage => Discussion démarrée par: Rick_Cplusplus le Août 01, 2019, 10:25:18 pm

Titre: Doute sur MouseButtonPressed et MouseButtonReleased
Posté par: Rick_Cplusplus le Août 01, 2019, 10:25:18 pm
Bonsoir la communauté,

Les tutoriels sont vraiment bien fait mais j'ai du mal à lever un doute sur le fonctionnement des évènements MouseButtonPressed et MouseButtonReleased

Le tuto dit :
Les évènements sf::Event::MouseButtonPressed et sf::Event::MouseButtonReleased sont déclenchés lorsqu'un bouton souris est pressé/relâché.

Ok mais ce que je cherche à comprendre c'est si ces événements signalent un front montant / descendant (le bouton de la souris change d'état) ou un statut (le bouton de la souris est à l'état pressé / relâché).

Autrement dit, si je code :

int i(0);
sf::Event event;
    while (m_fenetre.pollEvent(event))
    {
         if (event.type == sf::Event::MouseButtonPressed)
        {
            // click gauche...
            if (sf::Mouse::isButtonPressed(sf::Mouse::Left))
            {

                i++
               
            }
        }
    }
 

et que durant l’exécution je maintiens le bouton gauche de la souris appuyé, mon i s'incrémente-il une seule fois ou une fois par frame ?

Rick.
Titre: Re: Doute sur MouseButtonPressed et MouseButtonReleased
Posté par: G. le Août 01, 2019, 11:23:15 pm
1 fois. Sinon t'essaies et tu verras bien :D

if (event.type == sf::Event::MouseButtonPressed)
=> Est-ce qu'on vient d'appuyer sur un bouton de la souris ?

if (sf::Mouse::isButtonPressed(sf::Mouse::Left))
=> Est-ce que le clic gauche de la souris est actuellement enfoncé ?
Titre: Re: Doute sur MouseButtonPressed et MouseButtonReleased
Posté par: Rick_Cplusplus le Août 02, 2019, 08:04:52 am
Ok c'est plus clair.
Merci pour ces précisions Mister G.  :)

Rick.
Titre: Re: Doute sur MouseButtonPressed et MouseButtonReleased
Posté par: Laurent le Août 02, 2019, 08:29:13 am
Un peu de logique : on parle ici d'évènements (ie. des choses qui arrivent de manière ponctuelle). Ca n'aurait pas de sens de spammer la boucle d'évènements avec l'état de tous les boutons et touches clavier/souris/joystick lorsqu'il ne se passe rien.