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] Gestion des touches claviers problématique


Sujet :

SDL

  1. #1
    Invité4
    Invité(e)
    Par défaut [SDL] Gestion des touches claviers problématique
    Bonjour,

    on a lancé une version d'essai de notre jeu multijoueur en SDL.
    Mais des testeurs se sont plaints car leur clavier focntionne mal pour écrire des messages dans le chat du jeu par exemple. Si on tape Z ça tape Y, et je vous parle pas des touches -, . et co.

    Pourtant pour gérer le clavier je regarde le code SDL avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    event.key.keysym.sym
    puis je convertis cela en un caractère dans un char
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    case SDLK_a :
           touche = 'a';
    break;
    case SDLK_b etc etc etc
    Bref, avez-vous une idée de la façon de régler ce pépin ?

    Merci bien

    PS: Pour reformuler, SDL ne fait pas la reconversion automatique si le clavier est azerty qwertz ou qwerty
    Dernière modification par Invité4 ; 12/10/2006 à 15h45.

  2. #2
    Expert confirmé
    Avatar de shenron666
    Homme Profil pro
    avancé
    Inscrit en
    Avril 2005
    Messages
    2 524
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : avancé

    Informations forums :
    Inscription : Avril 2005
    Messages : 2 524
    Points : 5 184
    Points
    5 184
    Par défaut
    je pense à deux solutions

    la première me semble contre indiquée par la doc de la SDL concernant SDLKey
    http://www.libsdl.org/cgi/docwiki.cgi/SDLKey
    elle consisterait à laisser l'utilisateur paramétrer le type de clavier et à sélectionner une table de correspondance entre les SDLK_* et les caractères
    j'avoue que cette solution ne m'enchanterait guère, se taper le codage des tables (au moins 3) c'est moyen

    la seconde, activer la conversion Unicode avec SDL_EnableUNICODE
    tu as un exemple dans la doc de SDL_keysym :
    http://www.libsdl.org/cgi/docwiki.cgi/SDL_5fkeysym
    tu récupères le code ascii du caractère :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    char ch = event.key.keysym.unicode & 0x7F;
    et tu en fait ce que tu veux, comme l'afficher directement, le code ascii étant universel

    la conversion unicode consomme du temps machine, comme le dit la doc
    et comme il est possible d'activer/désactiver la conversion pendant l'execution, il est tout à fait envisageable de ne l'activer que lorsque l'utilisateur doit saisir du texte
    Tutoriels OpenGL
    Je ne répondrai à aucune question en MP
    - Si c'est simple tu dis que c'est compliqué et tu le fait
    - Si c'est compliqué tu dis que c'est simple et tu le sous-traite ou le fait faire par un stagiaire.

  3. #3
    Invité4
    Invité(e)
    Par défaut
    Eh ben je vais opter pour l'unicode, en attendant une réponse, j'ai fait une surface avec les lettres dessinées dessus, et l'utilisateur clique sur les lettres. pour écrire son message.

    Mais je vais proposer l'unicode, merci

  4. #4
    Expert éminent sénior

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Points : 11 877
    Points
    11 877
    Par défaut
    Citation Envoyé par Eldacar
    Eh ben je vais opter pour l'unicode, en attendant une réponse, j'ai fait une surface avec les lettres dessinées dessus, et l'utilisateur clique sur les lettres. pour écrire son message.

    Mais je vais proposer l'unicode, merci
    L'unicode est la seule solution pour le faire en SDL. Sinon il y aura toujours le problème que tu as exposé en fait.

    Jc

Discussions similaires

  1. [Débutant] Gestion des touches du clavier
    Par krolis dans le forum Windows Forms
    Réponses: 2
    Dernier message: 10/07/2012, 11h39
  2. Gestion des touches clavier
    Par new_wave dans le forum Débuter
    Réponses: 2
    Dernier message: 15/04/2012, 00h09
  3. gestion des touches du clavier
    Par ines1 dans le forum C++
    Réponses: 5
    Dernier message: 27/01/2007, 20h37
  4. Gestion des touches clavier
    Par bourinator dans le forum Interfaces Graphiques en Java
    Réponses: 4
    Dernier message: 18/06/2006, 16h19
  5. [DirectInput] Gestion des touches en mode fenêtré
    Par Harry_polin dans le forum DirectX
    Réponses: 8
    Dernier message: 19/03/2003, 17h50

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