Forum de la communauté SFML

Aide => Général => Discussion démarrée par: yhu420 le Octobre 25, 2013, 06:24:22 pm

Titre: Interdire de recevoir des keypress
Posté par: yhu420 le Octobre 25, 2013, 06:24:22 pm
Bonjour tout le monde,
Je débute encore avec SFML et je me suis mis en tête de faire une petite application. Voici mon problème: j'ai plus ou moins :
if(ToucheEntréeAppuyée())
{
     faireUneActionQuiDure2s();
}

Alors maintenant je me suis dit oui mais si l'utilisateur décide de spammer la touche entrée, alors la tout part en cacahuète. Ce qui me semble être la bonne solution c'est une traduction de ça en C++:

if(ToucheEntréeAppuyée())
{
     ignorerLesTouchesAppuyées2s();
     faireUneActionQuiDure2s();
}


Gros edit: ou alors quelque chose comme ça:

ignorerLesEvenementsClaviers();
Des instructions...;
NePlusIgnorerLesEvenements();

Cette solution m'aiderait encore plus dans mon cas  ;D
Merci  :D
Titre: Re : Interdire de recevoir des keypress
Posté par: Laurent le Octobre 25, 2013, 06:34:06 pm
Déjà si ton action qui dure 2 secondes est effectuée dans le même thread, il ne risque pas de se passer grand chose pendant ce temps, même si l'utilisateur appuie sur entrée. Je vais donc supposer que cette action s'effectue dans un thread séparé.

Ensuite je pense que tu compliques la vie, il faut juste un booléen qui dit si l'utilisateur peut ou non appuyer sur entrée (= si la tâche qui dure deux secondes est en cours ou non), puis :

if(!actionEnCours && ToucheEntréeAppuyée())
{
     faireUneActionQuiDure2s(); --> actionEnCours = true au début, actionEnCours = false à la fin
}
Titre: Re : Interdire de recevoir des keypress
Posté par: yhu420 le Octobre 27, 2013, 08:55:35 am
Pas bête comme idée merci de ta réponse rapide ça m'a vraiment aidé  ;D