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

Auteur Sujet: détécter quand une touche est ralachée  (Lu 2695 fois)

0 Membres et 1 Invité sur ce sujet

CatEndal

  • Newbie
  • *
  • Messages: 14
    • Voir le profil
détécter quand une touche est ralachée
« le: Août 15, 2017, 08:53:53 pm »
Bonjour
Je suis en train de créer un jeu avec la SFMl je veut que le joueur rentre un code a un moment. seulement, voilà, quand j'utilise la fonction :
 
while (fill)
{
        if (sf::Keyboard::isKeyPressed(sf::Keyboard::A))
        {
                //mon code     
        }
}

le programme considère que la touchea est appyée plein de fois ( ce qui est logique car le logiciel test a chaque tics). donc comment faire en sorte que le programme attende que la touche soit relâchée ? Merci

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Laurent Gomila - SFML developer

CatEndal

  • Newbie
  • *
  • Messages: 14
    • Voir le profil
Re: détécter quand une touche est ralachée
« Réponse #2 le: Août 16, 2017, 05:43:12 pm »
j'ai suivi ce tutoriel, mais lorsque je rajoute
 
while (fill)
{
        if (sf::Keyboard::isKeyPressed(sf::Keyboard::A))
        {
                //mon code
                while (sf::Event::KeyPressed)
        {
                               
                        }      
        }
}
,

CatEndal

  • Newbie
  • *
  • Messages: 14
    • Voir le profil
Re: détécter quand une touche est ralachée
« Réponse #3 le: Août 16, 2017, 05:45:27 pm »
désolé du double post
donc quand je rajoute ce code, le programme se bloque avant même que je fasse quelque chose

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re: détécter quand une touche est ralachée
« Réponse #4 le: Août 16, 2017, 05:55:35 pm »
Citer
j'ai suivi ce tutoriel
Pas sûr... Ton "code" n'a vraiment aucun sens, et ne correspond en rien à ce qui est décrit dans le tutoriel, ni dans aucune autre source (documentation, wiki, exemples, livres, ...).

Citer
désolé du double post
Tu as la possibiltié d'éditer un post plutôt que de reposter.
Laurent Gomila - SFML developer

Guillaume__

  • Newbie
  • *
  • Messages: 42
    • Voir le profil
Re: détécter quand une touche est ralachée
« Réponse #5 le: Août 17, 2017, 10:46:51 am »
Salut !

Pour détecter lorsqu'une touche est relâchée il faut se placer au niveau de la boucle événementielle et utiliser l'event KeyReleased. Plus concrètement ça devrait te donner quelque chose de similaire à ceci :

//...
sf::Event event;
while(window.isOpen()){
    while(window.pollEvent(event)){
        //Si la touche A de ton clavier est relâchée alors on rentre dans la condition
        if(event.type == sf::Event::KeyReleased && event.key.code == sf::Keyboard::A)
            std::cout << "Detection du relachement de la touche A avec la SFML !" << std::endl;
    }
}
//...
 

Y a pas plus simple :)
Essayes de regarder en profondeur le lien que Laurent t'a fourni, tu y trouveras tout ce dont tu as besoin concernant les événements ;)

Cordialement G
Rejoignez-nous sur le serveur
Discord SFML

 

anything