petit pb de deplacement en C avec keysym de sdl
Forum Programmation : petit pb de deplacement en C avec keysym de sdl
bonjour a tous voilà j'ai un petit pb pas trop grave mais sa me tracasse => je m'entrainer a la maitrise des evenement en sdl avec le keysym voici un extrait de ma boucle infini pour analyser un evenement =
SDL_WaitEvent(&event);
switch(event.type)
{
case SDL_QUIT:
continuer = 0;
break;
case SDL_KEYDOWN:
switch(event.key.keysym.sym)
{
case SDLK_UP:
positionimg.y--;
break;
case SDLK_DOWN:
positionimg.y++;
break;
case SDLK_RIGHT:
positionimg.x++;
break;
case SDLK_LEFT:
positionimg.x--;
break;
case SDLK_z:
positionSa.y--;
break;
case SDLK_s:
positionSa.y++;
break;
case SDLK_q:
positionSa.x--;
break;
case SDLK_d:
positionSa.x++;
break;
donc je demande d'utiliser z pour la direction haut, q pour la gauche, s pour le bas et d pour la droite mais dans la fenetre engendrée il n'y a que s et d qui marche et z s'est chnger en a et q en w !!! j'ai changer les touches et sa marche... c'est n'est pas trop grave me dirait vous mais sa menerve car je voudrais faire un jeu et les touche sont importante donc voilà... Je pense que le probleme doit etre a cause de certain clavier americain qui ne sont pas comme le mien ou le votre certaine touche sont inversé... j'ai trouver les evenements qui correspondent au touche dans la doc de sdl sur le site qui est en anglais donc j'en deduit que se sont les evenements pour les clavier american non ?? voilà j'espere avoir été clair... merci d'avance pour votre aide...
Je dis peut etre nimporte quoi mais t'a qu'a remplacer z par a et q par w ?
Répondre à Hrusdik
non sa ne fait rien... Comme les claviers american sont differents des notres il doit y avoir une confusion au niveau des touches...Je peux par contre changer les touches et là sa marche mais je voudrais savoir si c'est possible d'utiliser les touches de nos clavier a nous et pas ceux des americains...
Message édité par fushichou le 01-12-2006 à 20:47:32
Au niveau driver, il y a un mapping des touches entre le code de la touche et le code de sa signification, alors regarde si tu n'a pas autre chose dans le event.key qui pourrait de permettre d'avancer.
sinon, tu peux faire la bonne vielle technique du petit programme qui affiche le numéro de la touche appuyée pour connaitre les tests à faire
heu je veux bien mais comment je fait pour "regarder" dans event.key ???
tu l'affiches!
| coca25 a écrit : tu l'affiches! |
oui j'ai compris mais comment afficher la sous-variable event.key ?
Message édité par fushichou le 01-12-2006 à 20:54:55
ben je connais pas bien sdl...
mais tu regardes de quel type est event.key.keysym.sym puis tu fais un printf correspondant...
ou si c'est une structure, tu fais une fonction qui t'affiches les attributs...
sinon tu trouveras peut etre ton bonheur la dedans:
http://jeux.developpez.com/faq/sdl/?page=clavier
les printf ne marche pas je crois en sdl; les applications sdl ne se deroulent pas dans l'invite de commandes mais dans des fenetre et je ne sais pas encore ecrir dans une fenetre...
n'importe quelle application a se lance depuis une console, c'est pas parce qu'elle ouvre une fenetre qu'elle n'a pas de sortie d'erreur, donc un fprintf (stderr... ou un cerr marche toujours...
maintenant pour SDL je crois pas que cette bibliotheque modifie stdout, donc printf doit marcher quand meme
Message édité par coca25 le 01-12-2006 à 22:53:43
Il y a 2468 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.
