[C] Getch pendant 0.5sec
Résolu
cs-bilou
Messages postés
836
Statut
Membre
-
cs-bilou Messages postés 836 Statut Membre -
cs-bilou Messages postés 836 Statut Membre -
Bonjour,
Je suis actuellement en train de faire un PacMan.
Et donc je voudrais que l'on puisse utiliser gatch juste pendant 0.5sec.
Mais je ne vois vraiment pas comment faire :(
Il faut utiliser sleep(500) et getch( je veux utiliser getch car il n'y a pas besoin de confirmer par Entrée.
Si quelqu'un a une idée je suis preneur !!
Merci.
Bilou.
Je suis actuellement en train de faire un PacMan.
Et donc je voudrais que l'on puisse utiliser gatch juste pendant 0.5sec.
Mais je ne vois vraiment pas comment faire :(
Il faut utiliser sleep(500) et getch( je veux utiliser getch car il n'y a pas besoin de confirmer par Entrée.
Si quelqu'un a une idée je suis preneur !!
Merci.
Bilou.
3 réponses
Salut,
Utilise _kbhit ( https://www.microsoft.com/en-us/download/details.aspx?id=55984 ).
Cela te permettra de faire ta pause et ne bloquera pas ton programme.
Cdlt
Utilise _kbhit ( https://www.microsoft.com/en-us/download/details.aspx?id=55984 ).
Cela te permettra de faire ta pause et ne bloquera pas ton programme.
Cdlt
Super merci.
Alors voilà se que j'ai fait pour avoir un getch juste pendant environ 0.5sec.
Voilà merci encore pour ton aide.
Bilou.
Alors voilà se que j'ai fait pour avoir un getch juste pendant environ 0.5sec.
#include <conio.h>
#include <stdio.h>
int main(void)
{
int i = 0;
long maxI = 50000;
long touche;
for (i=0 ; i < maxI ; i++)
{
while (kbhit() != 0)
{
touche = getch();
i = maxI++;
}
}
if (touche == 2359208)
printf("Aucunne touche détectée\n");
else
printf("La touche est %c\n", touche);
system("PAUSE");
}
Voilà merci encore pour ton aide.
Bilou.
Pas super super ton code.
L'utilisation de clock serait beaucoup mieux :
Cdlt
L'utilisation de clock serait beaucoup mieux :
#include <stdio.h>
#include <conio.h>
#include <time.h>
int main(void)
{
int c=-1;
clock_t pause=clock()+0.5*CLOCKS_PER_SEC;
while(clock()<pause)
if(_kbhit()!=0){
c=_getch();
break;
}
if(c!=-1)
printf("La touche est : %c\n",c);
else
puts("aucune touche détectée");
_getch();
return 0;
}
Cdlt