Voilà, dernierement il m'est arrivé un problème avec la SDL:
Quand je programmais une touche sur du SDLK_q, c'était la touche "a" qui reagissait
Je programmais pour du Azerty mais SDL le traiter en Qwerty
Ce problème n'arrive pas à tout les claviers Azerty, cependant une minorité subit le problème et n'est pas écouter...
J'avais donc passer des heureS à chercher une solution;
-Soit faire sa propre map Azerty (déconseiller, travaille fastidieux et en plus finalement ça ne marche plus que sous du Azerty)
-Soit proposer à l'utilisateur de configurer ses touches (d'accord, mais assez bancale quand on veut jouer au pendu on demande toute les touches lettrés ?!)
-Soit bien sûr dans le code mettre un SDLK_q sachant très bien qu'on aura du "a" à la sortie (mais une fois encore, pour un snake à 4 touche ok, mais sur un tchat....on s'emmele vite fait)
-Soit, l'utilisation de l'unicode; on se sert de la Fonction "SDL_EnableUNICODE(1)" au départ et après au lieu d'utilisé keysym.sym on utilise keysym.unicode(/!\ certaines touches comme les flêches sont universelle et l'unicode marche pas mais on peut contourner ceci avec une verification "!=0")
Ces solutions peuvent être toutes utilisé et peuvent être bien, cela depend juste du jeu impliqué.
La dernière, l'unicode, semble être la meilleur (car cela gère le qwerty, l'azerty, mais aussi les autres types de claviers universelle). Le problème c'est qu'elle ne fonctionne que quand on a un SDL_KEYDOWN (pour des raisons techniques)
Donc voilà, certain comme moi on surrement besoin de repérer le relachement de la touche aussi, et je viens de trouver une alternative sympa (j'en ai trouver AUCUNE sur internet, c'est pourquoi je post ma source ici pour ceux qui serait aussi dans le besoin).
Dans le code ci-dessous je stock dans un tableau l'equivalance de keysym.sym en keysym.unicode