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

SDL Discussion :

SDL_GetKeyState()


Sujet :

SDL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite Avatar de SofEvans
    Homme Profil pro
    Développeur C
    Inscrit en
    Mars 2009
    Messages
    1 084
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur C

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 084
    Par défaut SDL_GetKeyState()
    Bonjour,

    Alors voila, cela fais plusieurs jour que j'essaye de percer ce mystère mais je n'y arrive pas.
    En fait, quand j'utilise SDL_GetKeyState(), je m'aperçois que mon programme refuse complètement de gérer plus de deux touches, c'est a dire qu'il va prendre en compte la première touche appuyer, la deuxième mais quelle que soit la troisième, il n'y prêtera pas attention.

    Étant donnée que c'était mes premiers test avec cet fonction, j'ai télécharger les codes sources dans le tutoriel de développez (merci Loka ) pour en avoir le cœur net. Rebelote, le PC refuse de comprendre quoi que ce soit.

    Je voudrais savoir d'où peut bien venir un tel comportement et par la même occasion a quoi sert le paramètre que l'on envoie a SDL_GetKeyState().
    J'ai un Compaq Presario C700 avec VISTA dessus (arrêter de me lapider siouplait ) et je compile avec code::block ( si ça peut aider ... ).
    Voila, voila, merci par avance des explication qui pourrait m'éviter une crise de nerf avec mon pC .

  2. #2
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 158
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 158
    Billets dans le blog
    152
    Par défaut
    Bonjour,

    L'argument que prend SDL_GetKeyState() est un pointeur sur un int ,pour que la SDL t'indique la taille du tableau qui contient l'état des touches.

    Il se peut, que le problème vienne directement de ton clavier. Car certain clavier ( pour certaine touches normalement ) n'accepte pas l'appuie sur trois touches en même temps.
    Peut poser problème sur un jeu du type de Frets on Fire :s
    Donc je te conseille de faire un autre test avec soit un clavier branchée par USB , soit un autre PC.

    Au sinon, si tu es archi sur que cela vient du code, poste la partie qui utilise le SDL_GetKeyState()
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  3. #3
    Membre émérite Avatar de SofEvans
    Homme Profil pro
    Développeur C
    Inscrit en
    Mars 2009
    Messages
    1 084
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur C

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 084
    Par défaut
    Je suis sur que le problème ne vient pas du code, c'est impossible puisque pour faire les test, j'ai pris le code source de Loka dans son tutoriel de SDL.

    Pour essayer de mieux cerner le problème, j'ai remplacer

    if( keystates[ SDLK_LEFT ] )

    par if( keystates[ SDLK_r ] )

    J'ai compiler et lancer l'exécutable, et la, Ô surprise,les trois touche directionnel droite - haut - bas ne peuvent pas être gérés en même temps mais on peut gérer R en même temps que deux touche directionnel ....

    Si je remplace if( keystates[ SDLK_RIGHT ] )
    par if( keystates[ SDLK_z] )
    et que je re-teste, le problème de base survient a nouveau, impossible de gérer plus de deux touche .......

    Ton idée du clavier m'intéresse LittleWhite. Tu peux m'expliquer plus précisément ce que tu veux dire ? est ce que c'est seulement le clavier qui gênerai ( et donc brancher un autre clavier résoudrait mon problème ) ou l'OS pourrait être impliquer dans cette histoire ?


    Merci beaucoup pour n'importe quelle piste ou explication qui pourrait m'amener a comprendre ce qui se passe dans ce foutu pC ...

  4. #4
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Certains clavier ne supportent effectivement pas certaines combinaison de touches, cela vient de la manière dont ils sont construits (les touches sont reliées en lignes et en colonnes -- je n'en sais pas plus et impossible de retrouver l'article qui en parlait).

    Il me semble que les claviers USB ne souffrent pas de ce problème, tout comme les claviers haut de gamme pour gamers.

  5. #5
    Membre émérite Avatar de SofEvans
    Homme Profil pro
    Développeur C
    Inscrit en
    Mars 2009
    Messages
    1 084
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur C

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 084
    Par défaut
    Merci pour vos réponses =)

    Je vais essayer de me renseigner chez un spécialiste ou dans un magasin specialiser pour faire le point sur le problème de clavier.
    Je vais aussi essayer de me dégoter un clavier usb pour faire des test et je vous tiendrez au courant.

  6. #6
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 158
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 158
    Billets dans le blog
    152
    Par défaut
    Les claviers USB , semble mieux, mais ne sont pas parfait pour autant.
    Les claviers pour gamers sont surement très bon. Mais je ne sais pas quoi conseillé pour éviter ce cas, à part faire un test avant.

    Et oui, c'est un problème technique. Plusieurs touches sont reliés à un même fil. Lorsque on appuie sur une touche, on repère la touche , mais lorsque l'on appuie sur deux touches à la fois, l'une d'entre elle peut cacher le signal de l'autre.
    ( Rappel , chaque touche occupe une sorte tableaux, ou il y a une touche par case. Les colonnes et lignes sont en fait des fils electriques qui relient les touchent. Lorsqu'on appuie sur une touche , on voit sur le fil électrique le répercution de la touche appyué. Pour savoir la quelle que c'est on a juste à regarder la ligne actionnée ( ou il y a eu le changement d'état) et la colonne.
    Bon c'est sur que expliquer par moi ça donne pas grand chose :s )
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  7. #7
    Rédacteur

    Avatar de loka
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2004
    Messages
    2 672
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 672
    Par défaut
    Je confirme le problème des claviers, par exemple au boulot on a des claviers qui ne gère pas certaines combinaisons de touches (bloqués parfois à 2 touches, parfois à 3 touches selon les combinaisons), problème que je ne possède pas chez moi.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. SDL_GetKeyState version manette?
    Par jaco3th dans le forum SDL
    Réponses: 0
    Dernier message: 08/10/2008, 13h19

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