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

OpenGL Discussion :

Combinaison spécifique de touches ne fonctionnant pas !


Sujet :

OpenGL

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Octobre 2011
    Messages : 72
    Points : 38
    Points
    38
    Par défaut Combinaison spécifique de touches ne fonctionnant pas !
    Bonjour,

    J'ai un problème que je viens de constater dans le jeu que je fais en OpenGl :
    Je peux déjà déplacer mon personnage en diagonale en appuyant sur deux directions à la fois, par exemple.

    J'ai voulu rajouter à ça la possibilité de booster : en restant appuyé sur Espace, on va deux fois plus vite.
    Et bien, il s'avère que la combinaison de touches Espace + Gauche + Haut ne fonctionne pas !

    Alors que la combinaison de touches Espace + Droite + Haut fonctionne, donc le problème n'est pas le nombre de touches pouvant être gérées en même temps,

    Et ça ne vient pas non plus de mon programme, puisque la combinaison Espace + Z + Haut fonctionne et que j'exécute la même chose, que j'appuie sur Z ou sur Haut...

    Quelqu'un aurait-il une explication ?

    Merci d'avance

  2. #2
    Expert éminent sénior
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : Mai 2010
    Messages : 3 214
    Points : 10 140
    Points
    10 140
    Par défaut
    Le truc c'est que OpenGL ne gère pas les touches , donc quel API utilise tu pour gérer le clavier ?
    Sinon un bout de code nous aiderez surement pour savoir d’où vient le probleme.

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Octobre 2011
    Messages : 72
    Points : 38
    Points
    38
    Par défaut
    Aha désolé j'utilise glut depuis tellement longtemps ça m'étais sorti de la tête ^^
    Tu as ta réponse du coup

    Pour le code, je vois pas trop quel bout donner... Il y a tellement de trucs par-ci par-là...
    Voilà mes fonctions qui déplacent le perso :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
    void keySpecialPressed(int key, int x, int y) {
    	switch(key) {
    		case GLUT_KEY_LEFT: hero->setDirection(LEFT, true);
    			break;
    		case GLUT_KEY_RIGHT: hero->setDirection(RIGHT, true);
    			break;
    		case GLUT_KEY_UP: hero->setDirection(UP, true);
    			break;
    		case GLUT_KEY_DOWN: hero->setDirection(DOWN, true);
    			break;
    		default:
    			break;
    	}
    }
     
    void keySpecialReleased(int key, int x, int y) {
    	switch(key) {
    		case GLUT_KEY_LEFT: hero->setDirection(LEFT, false);
    			break;
    		case GLUT_KEY_RIGHT: hero->setDirection(RIGHT, false);
    			break;
    		case GLUT_KEY_UP: hero->setDirection(UP, false);
    			break;
    		case GLUT_KEY_DOWN: hero->setDirection(DOWN, false);
    			break;
    		default:
    			break;
    	}
    }
    La direction de mon héros est un tableau de booléens, ce qui fait que je peux me déplacer dans deux directions en même temps

  4. #4
    Expert éminent sénior
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : Mai 2010
    Messages : 3 214
    Points : 10 140
    Points
    10 140
    Par défaut
    Je viens de testé en mettant des printf et je viens de remarqué que il ne gère pas plusieurs touche appuyé , si j'appuie sur 'j' et 'l' , il mettra la dernière touche appuyé (donc 'l' dans mon cas).
    Pour ma part je n'avais jamais remarqué ce probleme vu que je met jamais de code dans les événement clavier/souris/joystick ,mais un tableau de char (pour 0 ,1,2,3 , 0 = pas appuyé , 1 = down , 2 = resté appuyé , 3 = Up).
    Du coup avec ce système je pouvais avoir autant de touche appuyé ( vu que FreeGlut ne lit que la dernière touche appuyé mais suffisant pour activé la valeur de mon tableau).

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Octobre 2011
    Messages : 72
    Points : 38
    Points
    38
    Par défaut
    Ah d'accord, donc tu me conseilles d'utiliser un tableau de char global pour gérer ça ?

  6. #6
    Expert éminent sénior
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : Mai 2010
    Messages : 3 214
    Points : 10 140
    Points
    10 140
    Par défaut
    C'est exact (j'aime pas les global mais c'est le seul moyen ici) , ou un tableau de char dans une structure (je que je fait personnellement).

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Octobre 2011
    Messages : 72
    Points : 38
    Points
    38
    Par défaut
    Ok merci, j'essaierai,
    Mais il y a quand même un truc qui me perturbe,
    SUr Mac ça marche très bien... ^^'

Discussions similaires

  1. Conbinaison de touche ne fonctionne pas !
    Par Kiko93 dans le forum Ubuntu
    Réponses: 0
    Dernier message: 17/04/2011, 16h42
  2. [AC-2007] Fonction inhiber touche MAJ de la FAQ ne fonctionne pas
    Par higins dans le forum VBA Access
    Réponses: 3
    Dernier message: 02/09/2009, 13h38
  3. [AC-2003] Envoi des touches ^P avec SendKeys ne fonctionne pas?
    Par electrosat03 dans le forum VBA Access
    Réponses: 5
    Dernier message: 27/06/2009, 15h25
  4. Réponses: 9
    Dernier message: 30/04/2009, 16h20
  5. [RegEx] Test d'un format spécifique qui ne fonctionne pas
    Par Alvaten dans le forum Langage
    Réponses: 2
    Dernier message: 11/01/2008, 08h25

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