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

Auteur Sujet: [Résolu] Multiples passages dans un test de clavier  (Lu 2119 fois)

0 Membres et 1 Invité sur ce sujet

AzenoX

  • Newbie
  • *
  • Messages: 2
    • Voir le profil
    • E-mail
[Résolu] Multiples passages dans un test de clavier
« le: Juin 03, 2016, 09:32:03 pm »
Bonjour,
Je suis en train de faire un petit jeu avec un ami et je me heurte à un problème:

#include <SFML/Graphics.hpp>
#include <stdlib.h>
#include <iostream>
#include <string>


using namespace sf;
using namespace std;

int times(0);

int main(){

    while (true){
        if(Keyboard::isKeyPressed(Keyboard::E)){
            cout<<times<<" - SFML !"<<endl;
            times++;
        }
    }


    return 0;
}
 

Lorsque j'écris cela, j'obtiens plus de 100 fois le message dans la console alors que je ne clique qu'une seule fois sur la touche E, c'est un problème qui me dérange assez pour mon jeu.
Si quelqu'un a la solution, je suis preneur :D
« Modifié: Juin 04, 2016, 01:36:33 pm par AzenoX »

G.

  • Hero Member
  • *****
  • Messages: 1593
    • Voir le profil
Re : Multiples passages dans un test de clavier
« Réponse #1 le: Juin 04, 2016, 12:51:17 am »
sf::Keyboard::isKeyPressed te donne l'état d'une touche (enfoncée ou pas).
Donc ce qui compte ce n'est pas si t'as appuyé une fois dessus, mais si elle est enfoncée à chacun de tes tours de boucle. A moins d'enfoncer la touche que quelques microsecondes tu vas avoir plein de fois le message, logique.

Si tu fais un jeu j'imagine que ta vraie boucle c'est pas ça et que tu as une boucle d'évènement ? Si c'est le cas et que tu veux détecter une pression sur une touche utilise l'évènement KeyPressed (ou KeyReleased).

AzenoX

  • Newbie
  • *
  • Messages: 2
    • Voir le profil
    • E-mail
Re : Multiples passages dans un test de clavier
« Réponse #2 le: Juin 04, 2016, 01:35:11 pm »
Merci ;)

 

anything