[SDL]N'agit pas bien quand j'utilise le clavier

N'agit pas bien quand j'utilise le clavier [SDL] - C++ - Programmation

Marsh Posté le 03-07-2004 à 23:19:27    

Bonjour, j'ai un petit problème d'utilisation de la librairie SDL. Voici mon code qui me pose problème :


while (true)
   {
      SDL_Event event;
      if (SDL_PollEvent (&event) && event.type==SDL_QUIT)
         break;
      if (SDL_PollEvent (&event) && event.type==SDL_KEYDOWN)
      {
       x=x+50;
       cout<<"x vaut : "<<x<<endl;
             }
 
      affichage(x);
   }


La fonction affichage(x) fait un affichage qui depend de x mais là n'est pas le problème je pense. Avec ce code, le clic sur la croix de fermeture de la fenetre fonctionne tjs mais l'appui d'une touche n'incremente pas tjs x. Il faut que j'appuie plusieur fois de suite sur n'importe quelles touches pour qu'à un moment x veuille bien s'incrémenter. pourtant d'après ce que je pense avoir écrit, x devrait s'incrementer à chaque appui de touche quelquonque. Où est le problème? Merci d'avance

Reply

Marsh Posté le 03-07-2004 à 23:19:27   

Reply

Marsh Posté le 04-07-2004 à 00:08:28    

j'y connais rien, mais je dirais: ne fais qu'__un_seul__ PollEvent et après, swith sur .type

Reply

Marsh Posté le 04-07-2004 à 14:52:52    

je pense que ca viendrait peut etre d'un probleme de thread nan, j'me trompe? j'y connais pas assez en programmation (encore moins en thread) mais si il faut appuyer plusieurs fois... c'est qu'avant il faisait une autre tache et n(execute que tache par tache [:spamafote]


Message édité par neg'gwada le 04-07-2004 à 14:54:47

---------------
--- WinSplit Revolution ---
Reply

Marsh Posté le 04-07-2004 à 21:38:14    

Taz a écrit :

j'y connais rien, mais je dirais: ne fais qu'__un_seul__ PollEvent et après, swith sur .type


 
+1  :ouch:  :ouch:

Reply

Marsh Posté le 04-07-2004 à 23:17:16    

Salut...
 
Deux remarques :
1/effectivement comme le dit Kristoph, le SDL_PollEvent enlève l'event de la file d'attente et le stocke dans event => donc tu perds des évenements lors de tes tests !
2/ il est fortement conseillé d'avoir un SDL_Delay( 15 ) pour que l'OS ne soit pas à 100% occupé.

Reply

Marsh Posté le 05-07-2004 à 12:06:54    

effectivement, j'ai fait un switch avec un seul PollEvent et le problème est résolu. Merci

Reply

Sujets relatifs:

Leave a Replay

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