Détection Touche

Signaler
Messages postés
10
Date d'inscription
mercredi 31 octobre 2007
Statut
Membre
Dernière intervention
13 novembre 2007
-
Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
-
Bonjour à tous, dans le cadre d'un projet j'ai quelque question a vous poser car j'ai essayé beaucoup de chose , malheuresement sans résultat. Voici mon probleme, je dois pouvoir detecter une touche de "mouvement" c'est a dire que je dois utiliser les touches zqsd pour me déplacer.
 
Pour etre un peu plus claire:

while ( jappuie sur z)

{il accelere
}

j'ai essayé plusieurs choses comme le khbit mais je n'arrive pas à trouvé la bonne solution.Donc si quelqu'un pourrai m'aider sa serai très gentil.

Ensuite j'ai une deuxieme question pour etre claire le projet est un deplacement d'une voiture en mode console, le probleme c'est que je ne vois pas comment la voiture representer par un "^" une fois par ligne et non pas sur toute la ligne. Voici,je vous remercie d'avance si vous prenez du temps pour m'aider.:D

7 réponses

Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
15
char c;

do {
    while(_kbhit());

    c = _getch();
    printf("%c ", c);
} while(c != 'q');

Pour afficher un caractère à un endroit précis, suffis de te positionner
Utilise
SetConsoleCursorPosition
GetStdHandle

C++ (@++)<!--
Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
15
Oups petite erreur:

while(!_kbhit());

C++ (@++)<!--
Messages postés
10
Date d'inscription
mercredi 31 octobre 2007
Statut
Membre
Dernière intervention
13 novembre 2007

J'ai un petit probleme ou alors je me suis mal exprimé enfaite la route bouge constament mais je voudrai que quand j'appuie sur "z" elle va encore plus vite voila. Merci
Messages postés
10
Date d'inscription
mercredi 31 octobre 2007
Statut
Membre
Dernière intervention
13 novembre 2007

Excusez moi je me suis trompé c'est pas un while que je voulais faire mais un test

if ( jappuie sur z )

{ sa me change une variable que j'utiliserai dans une autre boucle }
Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
15
C'est un exemple. Pas bien compliqué de le transformer:

while(1) {
    while(_kbhit()) {
       // Ici tu effectue l'affichage et autre
       // en attendant l'appuis sur une touche
    }

    switch(_getch()) {
    case 'z':
       // on accelère
       break;
    case 'q':
       // on ralentie
       break;
    // etc. etc.
    }

}

C++ (@++)<!--
Messages postés
10
Date d'inscription
mercredi 31 octobre 2007
Statut
Membre
Dernière intervention
13 novembre 2007

Les case fonctionnent a merveille mais concernant laffichage ce ne marche pas je veux dire que je voudrai tout simplement par exemple mettre une boucle while qui maffiche toujours "bonjour" toujours avec ces cases c'est formidable !!!!
Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
15
J'ai refais la même erreur:

while(!_kbhit()) {
}

C++ (@++)<!--