A voir également:
- Comment commander les boutons flèches en c++
- Free commander - Télécharger - Gestion de fichiers
- Application pour reconnaître les boutons - Accueil - Outils
- Comment réinitialiser un téléphone avec les boutons - Guide
- A quoi servent les boutons de couleur sur une telecommande - Guide
- Comment commander un uber - Accueil - Guide transports et cartes
2 réponses
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 020
10 juil. 2011 à 00:19
10 juil. 2011 à 00:19
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)...
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 020
10 juil. 2011 à 15:19
10 juil. 2011 à 15:19
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); } } }
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 020
10 juil. 2011 à 15:23
10 juil. 2011 à 15:23
Remarque : j'avais oublié que tu faisais du C++ alors j'ai fais le code en C, mais c'est compatible ;-)
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 020
10 juil. 2011 à 16:18
10 juil. 2011 à 16:18
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...
nicocorico
Messages postés
799
Date d'inscription
dimanche 19 juin 2011
Statut
Membre
Dernière intervention
3 juillet 2018
138
10 juil. 2011 à 16:27
10 juil. 2011 à 16:27
Ou peut-être Vk_Up, Vk_Down... ce sont les définitions Virtual Keys de windows...