IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

gestion continue d'une touche


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juillet 2005
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 19
    Par défaut gestion continue d'une touche
    Bonjour,
    J'ai fait un mini jeu en C, je déplace un cercle au clavier avec les flèches directionnelles. Quand je reste appuyer sur une touche pour faire un déplacement que dans un sens, j'aimerai que mon cercle se déplace à vitesse constante. La pour le moment mon cercle se déplace d'une case, il s'arrête, puis repart en continue.
    Qu'elle est la petit astuce pour faire ça ?

    Merci

  2. #2
    Membre éprouvé
    Inscrit en
    Novembre 2002
    Messages
    120
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 120
    Par défaut
    Tu peux montrer du code stp? Mais ce n'est pas quelque chose de standard ==> précise le système d'exploitation par la même occasion.

  3. #3
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Quelle bibliothèque t'utilises pour la partie graphique de ton jeu ?
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  4. #4
    Membre chevronné
    Avatar de NewbiZ
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2002
    Messages
    184
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2002
    Messages : 184
    Par défaut
    Généralement dans ce genre de cas on stoque une variable :
    Ensuite (Win32, adaptes selon ton gestionnaire d'entrées), dans ta fonction de gestion des événements :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    case WM_KEYDOWN: {
       Keys[wParam] = TRUE;
       return 0;
    }
    case WM_KEYUP:
    {
       Keys[wParam] = FALSE;
       return 0;
    }
    A tout moment tu peux accéder au statut d'une touche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if (Keys[VK_ESCAPE] || Keys[VK_DOWN])
    {
       ...
    }
    Et voilà.

  5. #5
    Membre averti
    Inscrit en
    Juillet 2005
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 19
    Par défaut
    Système d'exploitation windows XP
    bibliothèque graphique =>Allegro
    Et pour un bout de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    int touche;
    while (valid==0)
    {
    	if(keypressed())
    	{
    		touche=readkey();
    		if(touche>>8 == KEY_UP)
    		{....
                    }
            }
    }
    Voilà comment je gère l'appuie d'une touche.

    Merci pour vos aides.

  6. #6
    Membre averti
    Inscrit en
    Juillet 2005
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 19
    Par défaut
    Je viens d'essayé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     while(!key[KEY_ESC])
    {
              if (key[KEY_UP])
              {
               ...
              }
    }
    Mais ça fait toujours la même chose. Un pas, après un temps d'arret et pour finir ça par en continue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 28/03/2014, 00h43
  2. Gérer l'appui continu sur une touche
    Par Greensource dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 29/10/2008, 10h45
  3. Attendre l'appui d'une touche pour continuer le programma
    Par Kcyril dans le forum Interfaces Graphiques
    Réponses: 4
    Dernier message: 05/04/2007, 15h11
  4. gestion continue d'une touche
    Par iwio dans le forum Allegro
    Réponses: 1
    Dernier message: 24/03/2007, 09h13
  5. Réponses: 15
    Dernier message: 28/01/2005, 04h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo