begin process at 2012 05 29 17:22:16
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

Problème de gestion de clavier avec SDL


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Problème de gestion de clavier avec SDL

dimanche 19 février 2006 à 01:16:29 | Problème de gestion de clavier avec SDL

vincemail

Bonjour, j'utilise SDL pour gérer le clavier : les flèches directionnelles doivent déplacer un personnage à l'écran. Mon problème est qu'il faut relacher et appuyer sur une touche à chaque fois que l'on désire faire avancer le personnage. Alors que je voudrais qu'il continue à se déplacer lorsque la touche est maintenue enfoncée... Voilà la boucle qui gère le clavier :

    while (arret==false)
    {
        SDL_WaitEvent(&event);
        touche = SDL_GetKeyState(NULL);

        if ( touche[SDLK_ESCAPE] ) arret=true;
        if ( touche[SDLK_UP] ) hero.Avancer();
        if ( touche[SDLK_DOWN] ) hero.Reculer();
        if ( touche[SDLK_LEFT] ) hero.TournerGauche();
        if ( touche[SDLK_RIGHT] ) hero.TournerDroite();

       hero.Afficher();
    }

Voilà, j'epère que quelqu'un saura me répondre. Merci
Vincent
dimanche 19 février 2006 à 02:41:07 | Re : Problème de gestion de clavier avec SDL

MrdJack

utilises plutot une variable d'etat de la touche :
BOOL touche_haut;

tu la passes a true lors d'un key_down, et tu la repasses à false lors d'un key_up
en gros, tant que tu appuies sur la touche, la variable est a true...

il suffit ensuite de faire une condition un peu plus loin dans le prog vérifiant si la touche est enfoncée et si oui, executer l'action.

c'est pas dur, juste penser a utiliser les etats key_down et key_up des evenements clavier.

@++



dimanche 19 février 2006 à 17:11:11 | Re : Problème de gestion de clavier avec SDL

vincemail

Réponse acceptée !
j'ai trouvé, en fait le problème vient de SDL_WaitEvent(&event) qui bloque la boucle jusqu'à ce qu'un nouvel événement ait lieu, donc si l'on maintient la touche enfoncée, cela ne compte que pour un seul événement. Il faut remplacer cette ligne par SDL_PollEvent(&event);


Cette discussion est classée dans : clavier, touche, sdl, hero, sdlk


Répondre à ce message

Sujets en rapport avec ce message

Simuler la pression d'une touche du clavier [ par sebastienbro ] J'utilise c++ builder 6, et j'aimerais simuler la pression de la touche Entrée. Mais voilà, comment faire !! Existe t'il une fonction qui fait ça auto emulation clavier [ par koubiack ] J'essai de crée un petit programme pour me servir de ma telecommande qui n'a pa de driver pour win XP. Et donc je cherche un moyen d'émuler l'appuie d gestion du clavier [ par Myts ] SalutJe programme sous TC++ (turbo c++) sous dos.Et j'ai un probleme concernant la gestion du clavier.Mon jeux, prochainement sur ce site, doit effect clavier : La touche Windows et la touche alt [ par bily ] Vegeta :-)Salut,je voudrais savoir comment a l'aide d'un boutton bloquer et debloquer la touche wndows en esperant que son raccourci "ctrl+echap" soie IMPORTANT CLAVIER WINDOWS BLOQUER [ par bily ] Vegeta :-)Salut,je voudrais savoir comment a l'aide d'un boutton bloquer et debloquer la touche wndows en esperant que son raccourci "ctrl+echap" soie intercepter une touche du clavier... [ par FrakTaLiTe ] Salut à tous!!! (je suis nouveau en c)Bon ben voila, je fais une petite application à l'aide de borland c++ 4.5 et j'ai besoin de savoir si l'utilisat gestion clavier sous mfc [ par dambeaufort ] bonjour a tous, j'ai regarder les messages deja preent dans le forum mais je n'arrive pas a efectuer la chose suivante:J'aimerais sous une application enregistrer dans fichier txt toute les touche taper sur clavier [ par Goorou ] bonjour jaimerais savoir comment faire pour faire un prog qui creer un fichier txt enregistre les touche taer sur le clavier la minute qui sui et enr Win32 simulation de touche du clavier [ par zibo3 ] Bonjour, j'ai un petit souci, j'aimerai pouvoir simuler l'appuie sur la touche TAB mais avec la touche SHIFT appuyé.Je sais que je dois envoyé un évén gestion clavier SDL trop rapide !!! [ par _Jonathan ] bonjour a tousj'ai créé un programme avec sdl/opengl mais la gestion du clavier(sdl) est beaucoup tro rapide.j'ai pourtant essayé avec SDL_KEYUP, mais


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,638 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales