Ajouter des touches a la SDL

Résolu
pandageek Messages postés 359 Date d'inscription   Statut Membre Dernière intervention   -  
pandageek Messages postés 359 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
Je programme un jeu ou le changement d'équipement se fait via les touches 1,2,3,... mais pour éviter d'avoir à maintenir maj, j'aimerai utiliser les caractères qui se trouvent en dessous &,é,",...
seulement la SDL n'a pas la touche é dans la liste de ses constantes.
Cette belle bibliotèque nous permet elle d'ajouter des touches en modifiant le .h ou tout autre fichier?
a t elle prévue des touches libres, qui nous permettrai une personnalisation?

merci à vous et bonne soirée.

5 réponses

[Dal] Messages postés 6205 Date d'inscription   Statut Contributeur Dernière intervention   1 105
 
Salut pandageek,

Je n'ai jamais utilisé la SDL, mais je suppose que tu devrais utiliser les scancodes des touches, plutôt que les caractères.


Dal
0
pandageek Messages postés 359 Date d'inscription   Statut Membre Dernière intervention   4
 
c'est à dire?
0
[Dal] Messages postés 6205 Date d'inscription   Statut Contributeur Dernière intervention   1 105
 
Salut pandageek,

http://wiki.libsdl.org/CategoryKeyboard

D'après ce que je vois, la SDL ne gère que les scancodes des claviers USB (qui sont standardisés)... mais c'est déjà pas mal :-)

Un scancode est un code renvoyé par le clavier identifiant une touche (et non un caractère). Tu peux intercepter le scancode pour la touche "1/&" sur un clavier français et le reconnaître, que l'utilisateur ait pressé Shift ou pas.

S'il presse Shift, le clavier renverra un scancode pour Shift (qui ne te sert à rien dans ton cas) et un autre pour la touche (1/&), qui est donc le même si l'utilisateur ne presse pas Shift.

Est-ce plus clair ?


Dal
0
pandageek Messages postés 359 Date d'inscription   Statut Membre Dernière intervention   4
 
je comprend très bien le principe mais la pratique reste floue :/
je ne trouve pas comment identifier ma touche.
qu'appelle tu un clavier standardisé?
0
[Dal] Messages postés 6205 Date d'inscription   Statut Contributeur Dernière intervention   1 105
 
Si tu lis le lien, les réponses à ces questions sont aux 2ème et 3ème paragraphe de l'introduction.

key.keysym.scancode contient le scancode, key.keysym.sym contient le caractère

La SDL définit les scancodes pour ces touches 1, 2 et 3 comme : SDL_SCANCODE_1, SDL_SCANCODE_2 et SDL_SCANCODE_3.

Une recherche Google sur "key.keysym.scancode" te donne des exemples de code de capture du scancode.

Par exemple : http://sdl.beuc.net/sdl.wiki/Handling_the_Keyboard Vois le code de la fonction PrintKeyInfo et comment elle est appelée par la fonction main.

Encore une fois, je ne connais pas SDL, alors je ne peux que t'aider à te mettre sur la piste. Allez, un petit effort :-)


Dal
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
pandageek Messages postés 359 Date d'inscription   Statut Membre Dernière intervention   4
 
voilà une solution servie sur un plateau :)
merci beaucoup à toi.
0