Comment commander les boutons flèches en c++
Techno01
-
Techno01 -
Techno01 -
Bonjour tout le monde je veux commander les touches flèches par exemple:
# include <iostream>
using namespace std;
main()
{
char key = ' ' ;// Justement une initialisation
while(key != 'touche droite du clavier')
{
cout << "cliquer sur le bouton droit pour sortir" << endl;
}return 0;
}
# include <iostream>
using namespace std;
main()
{
char key = ' ' ;// Justement une initialisation
while(key != 'touche droite du clavier')
{
cout << "cliquer sur le bouton droit pour sortir" << endl;
}return 0;
}
A voir également:
- Comment commander les boutons flèches en c++
- Comment réinitialiser un téléphone avec les boutons - Guide
- A quoi servent les boutons de couleur sur une telecommande - Guide
- Free commander - Télécharger - Gestion de fichiers
- Application pour reconnaître les boutons - Accueil - Outils
- Commande en cours de validation fnac - Forum Consommation & Internet
2 réponses
Je ne crois pas qu'il y ait de méthodes standard pour ça, il est donc important de savoir sur quel système tu codes (Windows, Linux...) ou alors t'intéresser à des librairies comme glut
Merci KX
d'abord je code sur Windows ,et je veux seulement avoir accée aux touches flèches pour un jeu qui controllent les mouvements et pas des caractères comme
a(haut),q(bas)...
d'abord je code sur Windows ,et je veux seulement avoir accée aux touches flèches pour un jeu qui controllent les mouvements et pas des caractères comme
a(haut),q(bas)...
J'ai bien compris ton problème ^^
Avec getch(), les "special key" renvoient d'abord un caractère ASCII commun, à la suite duquel tu dois faire un deuxième getch() pour les distinguer.
Remarque : dans la documentation, on trouve que ce caractère est char==0, chez moi, c'est char==-32 donc il faudrait regarder en détail chez toi savoir si c'est l'un ou l'autre...
Exemple :
Pour te servir de ça tu peux donc faire un getch, et un switch, et lorsque tu as -32 tu refais un switch avec le nouveau getch.
Exemple :
Avec getch(), les "special key" renvoient d'abord un caractère ASCII commun, à la suite duquel tu dois faire un deuxième getch() pour les distinguer.
Remarque : dans la documentation, on trouve que ce caractère est char==0, chez moi, c'est char==-32 donc il faudrait regarder en détail chez toi savoir si c'est l'un ou l'autre...
Exemple :
#include <stdio.h> #include <conio.h> int main() { while (true) { char c = getch(); if (c==-32) { char s = getch(); printf("Special Key : %d\n",(int) s); } else { printf("Normal Key : %d\n",(int) c); } } }
Pour te servir de ça tu peux donc faire un getch, et un switch, et lorsque tu as -32 tu refais un switch avec le nouveau getch.
Exemple :
#include <stdio.h> #include <conio.h> int main() { while (true) { char c = getch(); switch (c) { case -32 : switch (getch()) { case 72 : printf("Touche HAUT\n"); break; case 75 : printf("Touche GAUCHE\n"); break; case 77 : printf("Touche DROITE\n"); break; case 80 : printf("Touche BAS\n"); break; } break; default : printf("Touche %c\n",c); } } }
Avec le premier code quand je tape sur la flèche de droite il m'affiche "Special Key : 77"
Donc dans le deuxième code le case 77 doit correspondre à la flèche de droite aussi.
Par contre le 72 correspondant à la touche du haut, c'est "Touche HAUT" qu'il devrait afficher !
Mais il faut vérifier avec le premier code que c'est bien les mêmes valeurs sur ta machine.
Je pense qu'il doit exister des constantes genre KEY_UP, KEY_DOWN... pour ne pas avoir à rechercher ces valeurs à la main...
Donc dans le deuxième code le case 77 doit correspondre à la flèche de droite aussi.
Par contre le 72 correspondant à la touche du haut, c'est "Touche HAUT" qu'il devrait afficher !
Mais il faut vérifier avec le premier code que c'est bien les mêmes valeurs sur ta machine.
Je pense qu'il doit exister des constantes genre KEY_UP, KEY_DOWN... pour ne pas avoir à rechercher ces valeurs à la main...