kkun pourrait m'expliker comment marche cette fonction kbhit ?

kkun pourrait m'expliker comment marche cette fonction kbhit ? - C++ - Programmation

Marsh Posté le 28-04-2003 à 22:36:06    

Je cherche a utiliser la fonction kbhit pour gérer la gestion du clavier lors d'un jeu vidéo. J'ai fait des recherches sur le net mais je comprends pas exactement comment elle marche et j'aime pas utiliser des trucs que je maitrise pas. Les lignes en gras sont celles sur lesquelles je "bloque"
 
 
while(1)
{
if(_kbhit())
 {
 nbhit++;
 fflush(stdin);

 touche=lit_clavier();
  switch(touche)
  {
  case  SPACE :
   ...
   break;
  case HAUT :
   ...
   break;
  case BAS :
   ...
   break;
  case DROITE :
   ...
   break;
  case GAUCHE :
   ....
   break;
   }
  }
   
    fflush(stdin);

   }
 
Merci d'avance :hello:


Message édité par xavy le 28-04-2003 à 22:36:30
Reply

Marsh Posté le 28-04-2003 à 22:36:06   

Reply

Marsh Posté le 28-04-2003 à 22:42:29    

ben ca lis les touches appuyés sur le clavier
 
while(1) c'est une boucle infinie.
et nb_hit++ je suppose que ca compte le nombre de fois où tu as appuyés sur une touche.

Reply

Marsh Posté le 28-04-2003 à 22:48:44    

while (1)c'est une boucle infinie?
JE pensais k'a la place du "1" on devait mettre une condition du genre " tant qu'on a pas apuyé sur echap, on regarde kelle touche a été frappée"
pour le nbhit++ je pense que tu dois avoir raison
Donc si quelqun sait a koi correspond le while(1) et ce que ca fait la les fflush(stdin) :whistle:

Reply

Marsh Posté le 28-04-2003 à 22:53:56    

le while(1) est une boucle infinie, sans doute dans une thread de lecture d'evenements klavier; _kbhit() est une fonction qui bloque jusqu'au prochain claquage clavier [:tapai]


---------------
From now on, you will speak only when spoken to, and the first and last words out of your filthy sewers will be "Sir!"
Reply

Marsh Posté le 28-04-2003 à 23:01:47    

:( Je vais passer pour un lourd mais tant pis je me lance dans mes questions.
1)c'est quoi claquage clavier
2)c'est quoi une thread
3)Comment feriez vous pour arreter la boucle en appuiyant sur une touche donnée
4)Si j'ai bien compris cette partie de code tourne tel quel(il fo bien sur que je définisse la fonction lit_clavier(); )
ENcore désolé de poser toutes ces questions :)


Message édité par xavy le 28-04-2003 à 23:02:12
Reply

Marsh Posté le 28-04-2003 à 23:07:43    

Pour info, ça a été répété 36 fois mais bon :
 
LE FFLUSH(STDIN) EST UNE ABERRATION TOTALE QUI EST INDEFINIE ET QUI SERT DE JUSTIFICATIF AUX PROFS POUR MASQUER LEUR INCOMPETENCE !!!  
 
Désolé de gueuler, mais ça me révolte de voir ça à chaque fois ! :fou:


Message édité par Harkonnen le 28-04-2003 à 23:08:47

---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 29-04-2003 à 00:59:49    

Harkonnen a écrit :

Pour info, ça a été répété 36 fois mais bon :
 
LE FFLUSH(STDIN) EST UNE ABERRATION TOTALE QUI EST INDEFINIE ET QUI SERT DE JUSTIFICATIF AUX PROFS POUR MASQUER LEUR INCOMPETENCE !!!  
 
Désolé de gueuler, mais ça me révolte de voir ça à chaque fois ! :fou:


 
tu vois, il suffit de dire que fflush() ne marche que pour les flux en sortie et que donc ca ne marche pas sur stdin (ne marche pas pouvant signifier que le PC peut se mettre a chanter la cuccarracha si il veux car c'est un comportement non défini).
 
Et si t'as un problème avec tes anciens profs va leur mettre une droite en personne, pour ma part je suis très satisfait de ceux que j'ai eu.


Message édité par SquiZZ le 29-04-2003 à 01:22:44
Reply

Marsh Posté le 29-04-2003 à 01:43:03    

Si c'est pour géré le clavier, je ne saurais que trop te conseiller d'utilises une lib adaptée à ça et pas des fonctions C plus ou moins standard. Un exemple de tres bonne lib pour faire ça et même plus : www.libsdl.org

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed