AccueilDernières imagesblogS'enregistrerConnexion

Partagez
 

 Mappage des touches

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
LeDragonDev
Petit scarabée
LeDragonDev

Messages : 94
Réputation : 7
Inscrit le : 17/12/2011


Mappage des touches Empty
Msg n°1 MessageSujet: Mappage des touches Mappage des touches Icon_minitimeLun 13 Fév 2012, 22:07

Bonjour à vous!
Encore un soucis avec le developpement (décidement!)
Ce coup-ci, c'est le mapping des touches qui m'embête :/
Enfin, les touches elles-mêmes, aucun soucis, mais le pad analogique, je ne vois pas comment faire.

Merci de bien vouloir me guider
Revenir en haut Aller en bas
Riviera71
Dev' Open Source
Riviera71

Messages : 154
Réputation : 7
Age : 53
Inscrit le : 07/06/2011

Machine préférée Nec PC Engine

Localisation : Lyon

Humeur : La tête dans le code source ou les étoiles


Mappage des touches Empty
Msg n°2 MessageSujet: Re: Mappage des touches Mappage des touches Icon_minitimeMar 14 Fév 2012, 08:32

Salut Thedahu!

Soit tu utilises la fonction SDL_JoystickGetAxis(SDL_Joystick *joystick, int axis) comme un grand Wink
Soit tu te sers de ce que d'autres ont fait:
[Vous devez être inscrit et connecté pour voir ce lien]

Utilises ce qu'il y a en fin de page.
Revenir en haut Aller en bas
JeanSairien
Padawan
JeanSairien

Messages : 196
Réputation : 0
Age : 36
Inscrit le : 07/08/2011

Localisation : Brest


Mappage des touches Empty
Msg n°3 MessageSujet: Re: Mappage des touches Mappage des touches Icon_minitimeMar 14 Fév 2012, 08:37

Moi je me suis servi d'une appli caanoo qui indique le numéro des bouttons.

Le pad à 78 axes numéroté de 0 à 7 (8 étant le bouton home).
0 : bas (il me semble)
1 : bas gauche et ainsi de suite dans le sens des aiguille d'une montre.
...
Revenir en haut Aller en bas
LeDragonDev
Petit scarabée
LeDragonDev

Messages : 94
Réputation : 7
Inscrit le : 17/12/2011


Mappage des touches Empty
Msg n°4 MessageSujet: Re: Mappage des touches Mappage des touches Icon_minitimeMar 14 Fév 2012, 12:40

Merci à vous deux!
Je regarderai ce soir la doc de SDL_JoystickGetAxis(SDL_Joystick *joystick, int axis)!
Et je vous dirai si ça fonctionne Wink
Revenir en haut Aller en bas
LeDragonDev
Petit scarabée
LeDragonDev

Messages : 94
Réputation : 7
Inscrit le : 17/12/2011


Mappage des touches Empty
Msg n°5 MessageSujet: Re: Mappage des touches Mappage des touches Icon_minitimeMer 15 Fév 2012, 12:49

Hélas, après plusieurs testes, je n'ai absolument aucun résultat :/
La compilation ce déroule à merveille, le jeu ce lance, tout les boutons fonctionnent sauf le joystick.

La condition
Code:

if(SDL_JoystickGetAxis(joystick, 1) < -16384 || SDL_JoystickGetAxis(joystick, 1) > 16384)
ne suffit elle pas ? Ai-je oublié quelque chose?

[EDIT] J'ai trouvé une solution qui fonctionne mais qui ne ressemble pas vraiment aux exemples :lol2:

Code:
case SDL_JOYAXISMOTION:
        if (event.jaxis.axis == 1 && (event.jaxis.value < -16384 || event.jaxis.value > 16384) )
        .....

Pour le moment, je vais donc continuer avec ça. Merci pour votre aide happy
Revenir en haut Aller en bas
JeanSairien
Padawan
JeanSairien

Messages : 196
Réputation : 0
Age : 36
Inscrit le : 07/08/2011

Localisation : Brest


Mappage des touches Empty
Msg n°6 MessageSujet: Re: Mappage des touches Mappage des touches Icon_minitimeMer 15 Fév 2012, 13:40

Je t'envoie mon programme qui utilise les touches ce soir. Ca te dira comment moi je l'ai utilise. Petite question sur le joystick :

Le joystick a uniquement 8 position ou beaucoup plus (32767 selon les valeurs données précédemment)?

PS : J'utilise le joystick sur 8 positions, si c'est que tu souhaite, mon bout de code pourra t'aider.
Revenir en haut Aller en bas
LeDragonDev
Petit scarabée
LeDragonDev

Messages : 94
Réputation : 7
Inscrit le : 17/12/2011


Mappage des touches Empty
Msg n°7 MessageSujet: Re: Mappage des touches Mappage des touches Icon_minitimeMer 15 Fév 2012, 16:00

JeanSairien a écrit:

Le joystick a uniquement 8 position ou beaucoup plus (32767 selon les valeurs données précédemment)?

Cette valeur ne correspond pas plutôt à l'angle du joystick?

Doc SDL a écrit:

The value returned by SDL_JoystickGetAxis is a signed integer (-32768 to 32768) representing the current position of the axis, it maybe necessary to impose certain tolerances on these values to account for jitter.
La valeur retournée par SDL_JoystickGetAxis est un entier signé (-32768 à 32768) représentant la position actuelle de l'axe, il peut être nécessaire pour imposer certaines tolérances sur ces valeurs pour tenir compte de la gigue.

Je serai heureux de pouvoir jetter un coup d'oeil dans ton code Very Happy
Revenir en haut Aller en bas
Riviera71
Dev' Open Source
Riviera71

Messages : 154
Réputation : 7
Age : 53
Inscrit le : 07/06/2011

Machine préférée Nec PC Engine

Localisation : Lyon

Humeur : La tête dans le code source ou les étoiles


Mappage des touches Empty
Msg n°8 MessageSujet: Re: Mappage des touches Mappage des touches Icon_minitimeMer 15 Fév 2012, 16:09

Salut,

Il faut poser les conditions séparés comme ceci:

if (SDL_JoystickGetAxis( joystick, 0 ) < -16384) ton action gauche;
if (SDL_JoystickGetAxis( joystick, 0 ) > 16384) ton action droite;
if (SDL_JoystickGetAxis( joystick, 1 ) < -16384) ton action haut;
if (SDL_JoystickGetAxis( joystick, 1 ) > 16384) ton action bas;e


Dernière édition par Riviera71 le Jeu 16 Fév 2012, 16:54, édité 1 fois
Revenir en haut Aller en bas
JeanSairien
Padawan
JeanSairien

Messages : 196
Réputation : 0
Age : 36
Inscrit le : 07/08/2011

Localisation : Brest


Mappage des touches Empty
Msg n°9 MessageSujet: Re: Mappage des touches Mappage des touches Icon_minitimeMer 15 Fév 2012, 16:18

Oui quand je disait "position" je parlait de l'angle, uniquement pour la valeur 65535 (et non pas 32767 comme je l'ai dit plus haut). Dans le code j'utilise la même commande que pour utiliser les boutons "classiques". L'indice pour les 8 positions va de 0 à 7. Puis à partir de 8 on retrouve les autres boutons.

Je suis encore au travail. Mais dès que je rentre, je vous mets ça en ligne.

Par contre la précision n'est pas super je trouve, surement due au 65535 valeurs possible de l'angle (chose que je ne savait pas avant aujourd'hui).

PS : petite précision qui n'a pas vraiment sa place ici : j'utilise 8 image pour créé un mouvement pour un personnage, et j'utilise les 8 position du pad pour déplacer ce personnage. J'ai un lag en utilisant un seul fichier fpg avec toutes mes images. Je vais séparer mon fichier fpg en 8 fichier (un pour chaque direction) et je pense que je vais gagner en fluidité. Il s'agit uniquement d'une remarque.
Revenir en haut Aller en bas
JeanSairien
Padawan
JeanSairien

Messages : 196
Réputation : 0
Age : 36
Inscrit le : 07/08/2011

Localisation : Brest


Mappage des touches Empty
Msg n°10 MessageSujet: Re: Mappage des touches Mappage des touches Icon_minitimeMer 15 Fév 2012, 16:56

Voici mon code :

Code:

      if(get_joy_button(0,0) == true)
         j=0;
         graph=37;
         loop
            graph+=1;
            scroll.y0-=2;
            if(scroll.y0==4560)
               scroll.y0=0;
            end
            if(graph>46)
               graph=38;
            end
            frame(100);
            if(get_joy_button(0,0) == false)
               break;
            end
         end
      end
      
      if(get_joy_button(0,1) == true)
         j=0;
         graph=28;
         loop
            graph+=1;
            scroll.x0-=1;
            scroll.y0-=1;
            if(scroll.y0==4560)
               scroll.y0=0;
            end
            if(scroll.x0<0)
               scroll.x0=320;
            end
            if(graph>36)
               graph=29;
            end
            frame(100);
            if(get_joy_button(0,1) == false)
               break;
            end
         end
      end
      
      if(get_joy_button(0,2) == true)
         j=0;
         graph=19;
         loop
            graph+=1;
            scroll.x0-=2;
            if(scroll.x0<0)
               scroll.x0=320;
            end
            if(graph>27)
               graph=20;
            end
            frame(100);
            if(get_joy_button(0,2) == false)
               break;
            end
         end
      end
      
      if(get_joy_button(0,3) == true)
         j=0;
         graph=10;
         loop
            graph+=1;
            scroll.x0-=1;
            scroll.y0+=1;
            if(scroll.x0<0)
               scroll.x0=320;
            end
            if(scroll.y0<240)
               scroll.y0=4800;
            end
            if(graph>18)
               graph=11;
            end
            frame(100);
            if(get_joy_button(0,3) == false)
               break;
            end
         end
      end
      
      if(get_joy_button(0,4) == true)
         j=0;
         graph=1;
         loop
            graph+=1;
            scroll.y0+=2;
            if(scroll.y0==240)
               scroll.y0=4800;
            end
            if(graph>9)
               graph=2;
            end
            frame(100);
            if(get_joy_button(0,4)==false)
               break;
            end
         end
      end
      
      if(get_joy_button(0,5) == true)
         j=0;
         graph=64;
         loop
            graph+=1;
            scroll.y0+=1;
            scroll.x0+=1;
            if(scroll.y0==240)
               scroll.y0=4800;
            end
            if(scroll.x0>320)
               scroll.x0=0;
            end            
            if(graph>72)
               graph=65;
            end
            frame(100);
            if(get_joy_button(0,5)==false)
               break;
            end
         end
      end
      
      if(get_joy_button(0,6) == true)
         j=0;
         graph=55;
         loop
            graph+=1;
            scroll.x0+=2;
            if(scroll.x0>320)
               scroll.x0=0;
            end
            if(graph>63)
               graph=56;
            end
            frame(100);
            if(get_joy_button(0,6)==false)
               break;
            end
         end
      end
      
      if(get_joy_button(0,7) == true)
         j=0;
         graph=46;
         loop
            graph+=1;
            scroll.y0-=1;
            scroll.x0+=1;
            if(scroll.y0>4560)
               scroll.y0=0;
            end
            if(scroll.x0>320)
               scroll.x0=0;
            end
            if(graph>54)
               graph=47;
            end
            frame(100);
            if(get_joy_button(0,7)==false)
               break;
            end
         end
      end

Voici le mappage du pad :

0,0 : haut.
0,1 : haut gauche
0,2 : gauche
0,3 : bas gauche
0,4 : bas
0,5 : bas droite
0,6 : droite
0,7 : haut droite
Revenir en haut Aller en bas
Longjohn
Sexual Gamer
Longjohn

Messages : 352
Réputation : 9
Age : 50
Inscrit le : 14/05/2011

Machine préférée X360 - Xbox - Amiga - Dreamcast


Mappage des touches Empty
Msg n°11 MessageSujet: Re: Mappage des touches Mappage des touches Icon_minitimeMer 15 Fév 2012, 19:26

:lol2:

J'avais lu: "massage des touches"........................ :ptdr: :oui:
Revenir en haut Aller en bas
JeanSairien
Padawan
JeanSairien

Messages : 196
Réputation : 0
Age : 36
Inscrit le : 07/08/2011

Localisation : Brest


Mappage des touches Empty
Msg n°12 MessageSujet: Re: Mappage des touches Mappage des touches Icon_minitimeJeu 16 Fév 2012, 15:56

Petite précision : j'utilise ceci avec Bennu GD et non avec du langage C++ "classique". Je ne sais plus quelle librairie il faut importer.
Revenir en haut Aller en bas
Contenu sponsorisé




Mappage des touches Empty
Msg n°13 MessageSujet: Re: Mappage des touches Mappage des touches Icon_minitime

Revenir en haut Aller en bas
 
Mappage des touches
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1

 Sujets similaires

-
» Mappage des touches : perdus :/
» Besoin aide / Mappage touches NGC sur Odin Pro.
» Gros problème (mappage de touches impossible)
» Mappage muppen64 GPD XD+
» Much i5, aide au mappage (tuto)

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Communauté Francophone des Consoles Open Source / Android / Windows  :: AUTRES CONSOLES :: Les belles d'Antan :: Forum de la Caanoo :: Espace Développeurs :: A l'aide !-