Votre question

petit pb de deplacement en C avec keysym de sdl

Tags :
  • Switchs
  • Programmation
Dernière réponse : dans Programmation
29 Novembre 2006 14:55:51

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...

Autres pages sur : petit deplacement keysym sdl

Anonyme
30 Novembre 2006 08:19:49

Je dis peut etre nimporte quoi mais t'a qu'a remplacer z par a et q par w ?
30 Novembre 2006 10:15:31

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...
Contenus similaires
a b L Programmation
1 Décembre 2006 20:07:55

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 ;) 
1 Décembre 2006 20:41:00

heu je veux bien mais comment je fait pour "regarder" dans event.key ???
1 Décembre 2006 20:41:56

tu l'affiches!
1 Décembre 2006 20:46:11

coca25 a dit :
tu l'affiches!

oui j'ai compris mais comment afficher la sous-variable event.key ?
1 Décembre 2006 21:54:15

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
1 Décembre 2006 22:32:15

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...
1 Décembre 2006 22:53:29

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
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS