[C] Getch pendant 0.5sec

Résolu
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.
--
Il y a des jours faut pas m'chercher.
Et y'a des jours tous les jours !
Configuration: Tour: Antec Nine Hundred.
Moniteur: LCD 19" HYUNDAI X93W WIDE.
Carte mère: GIGABYTE EP45-DS3.
Processeur: Intel Core Duo E7200.(Oc a 30%)
Carte graphique: GIGABYTE Ati Radeon HD 3870 512MB GDDR3.
RAM: G.SKILL 1024*2 DDR2.(5-5-5-15)
Clavier: Logitech G11.
Souris: Microsoft Laser Mouse 6000.

3 réponses

  1. cs-bilou Messages postés 836 Statut Membre 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
    1. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
       
      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
  2. cs-bilou Messages postés 836 Statut Membre 164
     
    Haa oui merci beaucoup fiddy.
    Je vais regardre de plus prêt comment utiliser clock.

    Bilou.
    0