Welcome, Guest. Please login or register. Did you miss your activation email?

Author Topic: [Résolu] Multiples passages dans un test de clavier  (Read 2978 times)

0 Members and 1 Guest are viewing this topic.

AzenoX

  • Newbie
  • *
  • Posts: 2
    • View Profile
    • Email
[Résolu] Multiples passages dans un test de clavier
« on: June 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
« Last Edit: June 04, 2016, 01:36:33 pm by AzenoX »

G.

  • Hero Member
  • *****
  • Posts: 1599
    • View Profile
Re : Multiples passages dans un test de clavier
« Reply #1 on: June 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
  • *
  • Posts: 2
    • View Profile
    • Email
Re : Multiples passages dans un test de clavier
« Reply #2 on: June 04, 2016, 01:35:11 pm »
Merci ;)

 

anything