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 :

[SDL2] SDLK_ pour une touche clavier


Sujet :

SDL

  1. #1
    Membre Expert Avatar de edgarjacobs
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2011
    Messages
    828
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2011
    Messages : 828
    Par défaut [SDL2] SDLK_ pour une touche clavier
    Bonjour à tous,

    Je ne parviens pas à trouver le code SDLK_qqchose pour la touche que j'appelerai "menu", celle qui se trouve entre le "alt gr" et le "ctrl" de droite sur un clavier azerty (belge dans mon cas).

    Nom : 0336.png
Affichages : 83
Taille : 61,7 Ko

    J'ai déjà essayé SDLK_SYSREQ et SDLK_EXECUTE sans résultat.

    Merci d'avance de vous interesser à la question.

    Edgar;
    On écrit "J'ai tort" ; "tord" est la conjugaison du verbre "tordre" à la 3ème personne de l'indicatif présent ;)

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


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 219
    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 219
    Billets dans le blog
    162
    Par défaut
    Bonjour,

    Moi aussi je l'appelle "Menu" . Bref, dans la documentation de la SDL 3 : #define SDLK_MENU 0x40000076u /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_MENU) */Semble aussi disponible en SDL 2 : SDLK_MENU = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_MENU),
    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
    Expert confirmé
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 568
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 568
    Par défaut
    bonjour attention cette touche n'est peut-être pas disponible sur tous les claviers c'est à vérifier.
    Par exemple sur les ordinateurs portables il y a un nombre réduit de touches de clavier comparativement à une tour PC.

    Et puis sous Linux je ne suis pas certain que cette touche soit fonctionnelle.

  4. #4
    Membre Expert Avatar de edgarjacobs
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2011
    Messages
    828
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2011
    Messages : 828
    Par défaut
    Hello,

    @LittleWhite: merci pour l'information, hélas SDLK_MENU ne correspond pas à ma touche clavier. Pour finir, comme c'est un programme pour un usage personnel (rechercher des mots dans une grille de mots cachés), j'ai encodé la valeur de la touche (obtenue par un printf() ) en dur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #define MENU_KEY 0x40000065u
    Ça fonctionne avec mon clavier logitech azerty belge.

    @Mat.M.: merci pour la précision, mais comme je viens de l'écrire, c'est perso sous windows.

    Problème [partiellement] résolu.

    Edit: j'ai fait une recherche dans les .h de sdl2, la valeur 40000065 n'est nulle part renseignée
    On écrit "J'ai tort" ; "tord" est la conjugaison du verbre "tordre" à la 3ème personne de l'indicatif présent ;)

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


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 219
    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 219
    Billets dans le blog
    162
    Par défaut
    La touche fonctionne sous Linux...
    Sinon, dans les en-têtes, on peut trouver la touche (les en-tête de SDL 3 sont mieux présentés dans la documentation) : #define SDLK_APPLICATION 0x40000065u /**< SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_APPLICATION) */Et SDLK_APPLICATION existe aussi dans SDL 2 .
    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.

  6. #6
    Membre Expert Avatar de edgarjacobs
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2011
    Messages
    828
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2011
    Messages : 828
    Par défaut
    Merci LittleWhite,

    Cela fonctionne parfaitement. Je ne vais pas me plonger dans le dédale des .h pour comprendre pourquoi ça fonctionne, mais dans SDL_scancode.h (pour sdl2), je trouve
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SDL_SCANCODE_APPLICATION = 101, /**< windows contextual menu, compose */
    Sujet totalement résolu
    On écrit "J'ai tort" ; "tord" est la conjugaison du verbre "tordre" à la 3ème personne de l'indicatif présent ;)

  7. #7
    Membre Expert Avatar de edgarjacobs
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2011
    Messages
    828
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2011
    Messages : 828
    Par défaut
    Bon, j'ai quand même mis les mains dans le cambouis.

    Le define est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #define SDL_SCANCODE_TO_KEYCODE(X)  (X | SDLK_SCANCODE_MASK)
    Et le define du masque est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #define SDLK_SCANCODE_MASK (1<<30)
    Pour rappel
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SDL_SCANCODE_APPLICATION = 101
    Et donc, 101 | (1<<30) donne 1.073.741.925, ce qui vaut bien 0x40000065

    Maintenant, pourquoi le masque vaut-il (1<<30), mystère.
    On écrit "J'ai tort" ; "tord" est la conjugaison du verbre "tordre" à la 3ème personne de l'indicatif présent ;)

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


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 219
    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 219
    Billets dans le blog
    162
    Par défaut
    Maintenant, pourquoi le masque vaut-il (1<<30), mystère.
    D'autant plus que cela peut être totalement arbitraire (31e bit) .
    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.

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

Discussions similaires

  1. [WD14] ToucheEnfoncée pour une touche quelconque du clavier
    Par DanielB dans le forum WinDev
    Réponses: 2
    Dernier message: 17/05/2011, 18h27
  2. Réponses: 2
    Dernier message: 17/05/2006, 00h57
  3. Simuler une touche clavier
    Par micky13 dans le forum Langage
    Réponses: 9
    Dernier message: 17/04/2006, 21h08
  4. Comment remplacer une fonction d une touche clavier
    Par dominic75 dans le forum Autres Logiciels
    Réponses: 5
    Dernier message: 10/04/2006, 18h09
  5. [Applet]simuler une touche clavier
    Par mat10000 dans le forum Interfaces Graphiques en Java
    Réponses: 19
    Dernier message: 12/12/2003, 17h23

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