[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   -
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.

3 réponses

fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
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
0
cs-bilou Messages postés 769 Date d'inscription   Statut Membre Dernière intervention   164
 
Super merci.
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.

0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
Pas super super ton code.
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
0
cs-bilou Messages postés 769 Date d'inscription   Statut Membre Dernière intervention   164
 
Haa oui merci beaucoup fiddy.
Je vais regardre de plus prêt comment utiliser clock.

Bilou.
0