Evenements sur les touches numériques

Le tutoriel en ligne vous pose quelques problèmes ? C'est ici pour en parler !

Evenements sur les touches numériques

Messagede YuGiOhJCJ le 06 Avr 2006 23:24

Salut,
peut être que j'ai pas bien configuré ma Debian mais SDL ne me gère pas du tout les évenements pour mes touches numériques(pas celles du pavé numérique mais celles au dessus des lettres).
SDLK_1, SDLK_2, ...Ca marche pas!
Par contre SDLK_KP1, SDLK_KP2, ...Ca marche!(mais c'est pour la pavé numérique)
Tu as déjà essayé de faire fonctionner ces touches dans tes programmes?
Si tu as le temps, dis moi si toi ça fonctionne...
Thanx ;)
[yugiohjcj.free.fr]
Yu-Gi-Oh! Jeu de Cartes à Jouer
Avatar de l’utilisateur
YuGiOhJCJ
Bébé Chocobo
Bébé Chocobo
 
Messages: 121
Inscription: 22 Fév 2005 21:58
Localisation: Devant mon ordinateur en train de développer

Messagede moi1392 le 07 Avr 2006 09:36

j'ai eu des problèmes une fois dans un jeu SDL téléchargé sur le net avec ça, et j'ai en effet remarqué qu'il ne sait pas gerer les touches numériques ni avec verouille maj, ni avec maj. Mais je n'ai pas approfondit pour essayer de trouver le bug....
Désolé mais je ne peux pas t'aider plus là dessus :(

J'y jetterai un coup d'oeil ce week end si j'ai le temps ;)
Avatar de l’utilisateur
moi1392
Chocobo des mers profondes
Chocobo des mers profondes
 
Messages: 3986
Inscription: 27 Juin 2004 12:03
Localisation: chez wam

pareil

Messagede YuGiOhJCJ le 07 Avr 2006 13:46

OK ouais c'est pareil moi. Je vais aussi chercher de mon coté.
[yugiohjcj.free.fr]
Yu-Gi-Oh! Jeu de Cartes à Jouer
Avatar de l’utilisateur
YuGiOhJCJ
Bébé Chocobo
Bébé Chocobo
 
Messages: 121
Inscription: 22 Fév 2005 21:58
Localisation: Devant mon ordinateur en train de développer

Messagede YuGiOhJCJ le 07 Avr 2006 17:23

Je crois qu'il faut utiliser "unicode" pour que ce soit internationnal.
Pour cela, il faut activer cette fonction:
Code: Tout sélectionner
//Activer l'unicode
   SDL_EnableUNICODE(1);
[yugiohjcj.free.fr]
Yu-Gi-Oh! Jeu de Cartes à Jouer
Avatar de l’utilisateur
YuGiOhJCJ
Bébé Chocobo
Bébé Chocobo
 
Messages: 121
Inscription: 22 Fév 2005 21:58
Localisation: Devant mon ordinateur en train de développer

nada

Messagede YuGiOhJCJ le 07 Avr 2006 21:59

nen ça a pas l'air d'être ça...J'ai vraiement rien trouvé sur le net et dans les docs concernant ces touches numériques au dessus des lettres du clavier...Pour l'instant je ne peux me servir que de celles du pavé numérique :cry:
[yugiohjcj.free.fr]
Yu-Gi-Oh! Jeu de Cartes à Jouer
Avatar de l’utilisateur
YuGiOhJCJ
Bébé Chocobo
Bébé Chocobo
 
Messages: 121
Inscription: 22 Fév 2005 21:58
Localisation: Devant mon ordinateur en train de développer

Messagede moi1392 le 08 Avr 2006 00:17

Désolé, je n'ai pas encore eu le temps de regarder :(

9a n'a rien à voir mais tu conais XGL ? le serveur X qui se sert de openGL pour faire les rendu des fenetres et ça permet pas mal de choses ;) il y a un live CD ou tout est préconfiguré, il s'appelle "kororaa" (kororaa.org) si tu es motivé (et que tu as une connexion correcte), va récuperer leur live CD sur XGL, lance le et amuses toi 5 minutes avec, tu verras il est excellent :oui:
Avatar de l’utilisateur
moi1392
Chocobo des mers profondes
Chocobo des mers profondes
 
Messages: 3986
Inscription: 27 Juin 2004 12:03
Localisation: chez wam

Messagede YuGiOhJCJ le 09 Avr 2006 12:38

nen je ne connaissais pas XGL...Je vais me renseigner.
Sinon je vais récupérer les codes correspondants aux touches de mon clavier en SDL et je vérifierai si ça correspond bien à la touche.
[yugiohjcj.free.fr]
Yu-Gi-Oh! Jeu de Cartes à Jouer
Avatar de l’utilisateur
YuGiOhJCJ
Bébé Chocobo
Bébé Chocobo
 
Messages: 121
Inscription: 22 Fév 2005 21:58
Localisation: Devant mon ordinateur en train de développer

Messagede YuGiOhJCJ le 09 Avr 2006 13:03

Ca y est j'ai testé avec un petit programme SDL:
Touche pressée : 38
lorsque j'appuie sur "1" du clavier.

Or cette touche ne correspond à aucune touche numérique sur:
/usr/include/SDL/SDL_keysym.h

Code: Tout sélectionner

...
        SDLK_0                  = 48,
        SDLK_1                  = 49,
        SDLK_2                  = 50,
        SDLK_3                  = 51,
        SDLK_4                  = 52,
        SDLK_5                  = 53,
        SDLK_6                  = 54,
        SDLK_7                  = 55,
        SDLK_8                  = 56,
        SDLK_9                  = 57,
...


Normalement j'aurai donc du avoir l'affichage:
Touche pressée : 49

Pourquoi cette différence?
Peut être parce que ce n'est pas "1" qui est appuyé mais "&" avec un clavier AZERTY.
Et oui c'est bien ça:

Code: Tout sélectionner

...
SDLK_AMPERSAND          = 38
...



Donc cette touche est bien repertoriée.

Dans mon programme il faut que je mette SDLK_AMPERSAND et pas SDLK_1.

Bon...Problème résolu je pense.
[yugiohjcj.free.fr]
Yu-Gi-Oh! Jeu de Cartes à Jouer
Avatar de l’utilisateur
YuGiOhJCJ
Bébé Chocobo
Bébé Chocobo
 
Messages: 121
Inscription: 22 Fév 2005 21:58
Localisation: Devant mon ordinateur en train de développer

Messagede moi1392 le 09 Avr 2006 19:24

J'ai déjà pensé à cette méthode : utiliser le code des caractères sous les numéros et vérifier si maj ou verrouil maj est activé.

Malheuresement ce n'est pas la bonne solution car d'un pays à l'autre les touches changent. donc ton programme ne fonctionneras que pour les claviers français !

La seule solution est réellement que SDL te retourne une touche du genre SDLK_1.
Je pense qu'il faudrait signeler le bug à SDL, demais si j'ai le temps, j'irai faire un tour sur leur channel irc pour leur en parler.
Avatar de l’utilisateur
moi1392
Chocobo des mers profondes
Chocobo des mers profondes
 
Messages: 3986
Inscription: 27 Juin 2004 12:03
Localisation: chez wam

SDL IRC

Messagede YuGiOhJCJ le 09 Avr 2006 21:21

OK tu as raison.
Tu me tiens au courant de ce qu'ils ont dis?
[yugiohjcj.free.fr]
Yu-Gi-Oh! Jeu de Cartes à Jouer
Avatar de l’utilisateur
YuGiOhJCJ
Bébé Chocobo
Bébé Chocobo
 
Messages: 121
Inscription: 22 Fév 2005 21:58
Localisation: Devant mon ordinateur en train de développer

Messagede moi1392 le 10 Avr 2006 11:37

j'ai fait un essais avant d'aller leur en toucher un mot, et bizarrement, ça remarche !
Donc je pense que le problème a du être corrigé dans une mise à jour récente, car la dernière fois que j'ai voulu m'en servir (il y a quelques mois) j'ai eu le même problème que toi !

Tu utilises debian non ? tu es en stable ? testing ? ou unstable ? Moi je suis en unstable et ça marche bien ici :oui:
Avatar de l’utilisateur
moi1392
Chocobo des mers profondes
Chocobo des mers profondes
 
Messages: 3986
Inscription: 27 Juin 2004 12:03
Localisation: chez wam

Stable

Messagede YuGiOhJCJ le 03 Juil 2006 08:09

Salut ouais gt sur Debian stable...
Je me suis mis à Slackware pour essayer un peu est le même problème apparait avec leurs paquets...
Sous Windows par contre j'ai essayé et effectivement les touches numériques fonctionnent avec les claviers AZERTY français.

Sous Linux je suis toujours obligé de passer mon clavier en QWERTY pour accèder aux touches numériques.

Je pense que tu as raison. Je vais télécharger manuellement la dernière version de libsdl sur libsdl.org puis je vais remplacer les fichiers include de ma distrib.

On verra bien ce qui se passe :oui:
[yugiohjcj.free.fr]
Yu-Gi-Oh! Jeu de Cartes à Jouer
Avatar de l’utilisateur
YuGiOhJCJ
Bébé Chocobo
Bébé Chocobo
 
Messages: 121
Inscription: 22 Fév 2005 21:58
Localisation: Devant mon ordinateur en train de développer

Messagede YuGiOhJCJ le 04 Juil 2006 17:59

Donc j'avais la version 1.2.9 de sdl.
J'ai fait un
Code: Tout sélectionner
sdl-config --version


J'ai téléchargé le paquet rpm sur libsdl.org.
Je l'ai converti en tgz pour ma slackware :D

Mais même avec cette dernière version, j'ai recompilé et les touches numériques ne répondent pas.
Ca ne vient pas de la version donc...Dommage.
[yugiohjcj.free.fr]
Yu-Gi-Oh! Jeu de Cartes à Jouer
Avatar de l’utilisateur
YuGiOhJCJ
Bébé Chocobo
Bébé Chocobo
 
Messages: 121
Inscription: 22 Fév 2005 21:58
Localisation: Devant mon ordinateur en train de développer

...

Messagede YuGiOhJCJ le 28 Juil 2006 22:37

Finalement j'ai opté pour la solution d'attendre l'évenement des touches '&' 'é' '"' en + de '1' '2' '3'.
Petit soucis très rapidement reglé: le "é" est un caractère non US, j'ai eu peur qu'il ne soit pas géré. Donc il faut récuperer le code de la touche puis vérifier dans keysym.h qu'il correspond à "SDLK_WORLD_73".
Donc mes conditions sont du style:
Code: Tout sélectionner
if(evenement_1.key.keysym.sym==SDLK_2 || evenement_1.key.keysym.sym==SDLK_WORLD_73){

Pour prendre le cas de Windows et le cas de Linux.

PS: désolé moi1392 mais j'ai pas pu t'envoyer le programme...Je n'étais plus sous jabber. Par contre si tu veux récuperer l'executable qui marche:
http://81.56.209.13/l4e
[yugiohjcj.free.fr]
Yu-Gi-Oh! Jeu de Cartes à Jouer
Avatar de l’utilisateur
YuGiOhJCJ
Bébé Chocobo
Bébé Chocobo
 
Messages: 121
Inscription: 22 Fév 2005 21:58
Localisation: Devant mon ordinateur en train de développer

Re: Evenements sur les touches numériques

Messagede necromoine le 28 Mar 2011 21:17

Et avez vous une solution avec l'utilisation de SDL_getkeystats ?
Car je n'ai pas trouvé.
necromoine
Bébé Chocobo
Bébé Chocobo
 
Messages: 3
Inscription: 28 Mar 2011 18:49
Jeu(x) du moment: Zelda Minish Cap

Re: Evenements sur les touches numériques

Messagede val le 29 Mar 2011 06:00

Salut,
désolé, mais je pense qu'on a plus personne ici qui fait du SDL...
Moi, j'aime schtroumpfer !
Avatar de l’utilisateur
val
Chocobo des montagnes
Chocobo des montagnes
 
Messages: 1829
Inscription: 11 Juin 2010 06:55

Re: Evenements sur les touches numériques

Messagede necromoine le 29 Mar 2011 11:56

C'est bien ce que je me disais quand j'ai vu la date des messages ^^
Cette section c'est comme effondrée brutalement en 2006 :)
necromoine
Bébé Chocobo
Bébé Chocobo
 
Messages: 3
Inscription: 28 Mar 2011 18:49
Jeu(x) du moment: Zelda Minish Cap


Retourner vers Besoin d'aide en SDL ?

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité

cron