Forum de la communauté SFML

Aide => Fenêtrage => Discussion démarrée par: Fugius le Juillet 02, 2017, 09:44:13 pm

Titre: Problème d'input avec les flèches
Posté par: Fugius le Juillet 02, 2017, 09:44:13 pm
Salut, petit problème que je n'arrive pas a expliquer avec sf::Keyboard::isKeyPressed
Un exemple sera plus rapide a expliquer :
    //events

    while (m_window->pollEvent(event)) {
        if (event.type == sf::Event::Closed)
            m_window->close();

        if (sf::Keyboard::isKeyPressed(sf::Keyboard::Escape))
            m_window->close();

        if (sf::Keyboard::isKeyPressed(sf::Keyboard::Right)) {
            m_boat->move_right();
            cout << endl << "right";
        }  

        if (sf::Keyboard::isKeyPressed(sf::Keyboard::Space)) {
            m_boat->jump();  
        }
           
    }
 

Dans ce morceau de code, tout fonctionne sauf la partie ou je check la flèche de droite, si je remplace Right par autre chose (par exemple A ou Numpad0 ...), ça fonctionne, mais les flèches sont reconnues rarement (si je reste appuyé sur la flèche  et uniquement sur la flèche 30s, 3-4 inputs seront détectés maximum).

je fais quelque chose de mal ou le problème viens de mon clavier/ordinateur ? (j'ai un vieux clavier mécanique logitech et je travaille sous windows 10).

Merci par avance de vos réponses :)
Titre: Re: Problème d'input avec les flèches
Posté par: Cpl.Bator le Juillet 02, 2017, 11:58:30 pm
Sort tes " if (sf::Keyboard::isKeyPressed(sf::Keyboard::xxx))" en dehors de ta boucle d'event.
le but de ses fonctions , c'est d'être utilisé en dehors de la gestions des events.
Titre: Re: Problème d'input avec les flèches
Posté par: Fugius le Juillet 03, 2017, 12:14:12 am
Merci, mais ça ne résout pas le problème ;)
Titre: Re: Problème d'input avec les flèches
Posté par: Cpl.Bator le Juillet 03, 2017, 08:14:11 pm
si cela ne résout pas ton soucis, alors change ta façon de faire avec des flags :


pseudocode :

Citer
if keypressed(up)
 upflag = true

if keyreleased(up)
 upflag = false


if upflag = true
 movetruc()
Titre: Re: Problème d'input avec les flèches
Posté par: Fugius le Juillet 04, 2017, 04:04:01 pm
Le probleme c'est que le if fonctionne pas du tout, un :
       
if (sf::Keyboard::isKeyPressed(sf::Keyboard::Right)) {
            cout << "test" << endl;  
        }
 

ne fonctionne pas
Titre: Re: Problème d'input avec les flèches
Posté par: Cpl.Bator le Juillet 04, 2017, 08:57:36 pm
tu as un code plus grand ?