Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Appui long sur une touche [ Archives / OpenGL ] (pofipofo)

jeudi 2 mars 2006 à 11:03:39 | Appui long sur une touche

pofipofo

Bonjour,
J'ai réalisé le jeu Pong sous OpenGL.
Tout fonctionne sauf un truc...l'appui long sur les touches!
On joue à 2, lorsque quelqu'un reste appuyé sur une touche et que l'autre essaye de faire pareil, l'une des raquettes se bloque!
Comment réussir à gerer deux appuis long simultanément?

Merci!

jeudi 2 mars 2006 à 12:29:13 | Re : Appui long sur une touche

luhtor

Les fonctions que tu utilises pour la clavier ne sont pas les bonnes. Mais si tu précises pas avec quoi tu fais de l'opengl, on peut pas t'aider.



jeudi 2 mars 2006 à 12:37:41 | Re : Appui long sur une touche

kortin

Tu utilises le principe de l'incrémentation à chaque événement clavier, ce n'est pas une bonne méthode.
Il est plus judicieux de capter uniquement quand la touche est presser ou relacher. Comme ça, tu as juste à ajouter un timer, et tu verifie si la touche est appuyée ou non, et tu agis en conséquence. Ainsi, si plusieurs touche sont préssées simultanément, ça marche.

Donnes des nouvelles !


jeudi 2 mars 2006 à 14:14:00 | Re : Appui long sur une touche

pofipofo

ouais ca doit etre ca le probleme!!!
peux tu m'expliquer comment faire ça?
Merci

Sinon j'utilise Dev CPP.
Voila un peu a quoi ressemble mon prog :

// fonction de call-back pour la gestion des événements clavier

GLvoid window_key(unsigned char key, int x, int y)
{  
  switch (key) {    
  case 0x1b:  
    exit(1);                    
    break;
  
  case 0x2b: // touche +
    if (vitesse<1.5 && vitesse>=0.5)  
      vitesse=vitesse+0.5;        
    break;

jeudi 2 mars 2006 à 14:14:59 | Re : Appui long sur une touche

pofipofo

  case 'a': case 'A':
    if(pos_raq1_y+3<=16){  
      pos_raq1_y+=2;
      glutPostRedisplay();}    
    break;
  
  case 'q': case 'Q':
    if(pos_raq1_y-3>=-16){
      pos_raq1_y-=2;
      glutPostRedisplay();}    
    break;

jeudi 2 mars 2006 à 14:19:43 | Re : Appui long sur une touche

kortin


tu gardes une variable globale pour chaque touche.

exemple

bool touche_A;

GLvoid window_key(unsigned char key, int x, int y)
{  
  switch (key) { 
case 'a': case 'A':
    touche_A= true;
      glutPostRedisplay();}    
    break;
}


OnTimer() //toute les 20 millisecondes
{
   if(touche_A)
      {
         if(pos_raq1_y+3<=16){   
         pos_raq1_y+=2;
      }
      

}


et faut aussi capter quand la touche est relachée

jeudi 2 mars 2006 à 15:03:25 | Re : Appui long sur une touche

luhtor

Attention, il ne faut pas utiliser la fonction glutKeyboard, mais glutSpecialFunc et glutSpecialUpFunc qui vont etre appelé lorsqu'une touche est appuyée et relachée.



Cette discussion est classé dans : long, touche, appui


Répondre à ce message

Sujets en rapport avec ce message

Simuler l'appui de la touche F11 pour le plein écran sous Internet Explorer en Java [ par astrolynx ] Meilleurs voeux à tous, et à ceux que vous aimez ou appréciez...Question :Je souhaite afficher mon site en plein écran dès la connexion.Je connais la Appui sur touche, si simple et pourtant... [ par supergrey ] Bonjour tout le monde, j'ai un petit probleme, pour tester l'appui sur une touche.Voila ce que je fais:switch( uMsg){ case WM_KEYDOWN: Appui Touche Terminal Linux [ par LordBob ] Bonjour a tous,voila dans le but d'automatiser le copie de fichier systeme sous linux, j'aimerais savoir comment pour simuler l'appuie sur les touches simulation touche [ par flatou ] salut a tousj'ai parcouru les sujets concernant la simulation d'appui d'une touche sur le clavier, mais pas de reponse precise.je cherche a simuler l' faire la meme chose que lorsque l'on appui sur une touche du clavier [ par grogillou ] Je vous expliaue en gros mon probleme, j'ai creer (pas d'accent ici, desole) un fenetre avec un clavier (chaque touche est represneter par un bouton r Récupérer l'appui de la touche supp [ par titi4659 ] Bonjour,je souhaiterai dans mon application, que lorsque l'utilisateur appuie sur la touche 'supp' du clavier il exécute ce que je souhaite.j'ai fais appui court & long sur un bouton [ par wooshoo ] Bonjour,Je souhaiterais gerer l'appui court & l'appui long sur des boutons en MFC mais je ne sais pas quel est le meilleur moyen.Je pensais récuperer Effacer une image avec SDL en C [ par flofloo ] slt tout le mondevoici mon probleme j'ai realiser un petit prog qui affiche une image a l'appui de la touche "x" et maintenant je voudrais faire le co Simulation d'appui sur touche pas reconnu partout [ par ghostichou ] Voilà j'explique mon problème :)En gros je veux tout simplement simuler l'appuie sur la touche "fleche du haut" dans un jeu.Donc j'ai ce code là :     Tester l'appui d'une touche [ par Spoolega ] BonjourLe programme est écrit en C en mode console.Il faudrait que le prog puisse détecter l'appui d'une touche mais sans tout bloquer (genre, scanf,


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Comparez les prix Nouvelle version


HTC G1

Entre 449€ et 449€


Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,640 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.