[C] Getch pendant 0.5sec
Résolu
cs-bilou
Messages postés
769
Date d'inscription
Statut
Membre
Dernière intervention
-
cs-bilou Messages postés 769 Date d'inscription Statut Membre Dernière intervention -
cs-bilou Messages postés 769 Date d'inscription Statut Membre Dernière intervention -
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