Forum de la communauté SFML

Aide => Fenêtrage => Discussion démarrée par: Kaim le Juillet 24, 2012, 08:03:55 pm

Titre: [SFML 1.6] [RESOLU]MA chere manette Xbox 360 ....
Posté par: Kaim le Juillet 24, 2012, 08:03:55 pm
Tout est dans le titre, je m'amuse avec ma manette de jeu xbox 360 ....

Voici un petit code tout mignon pour voir comment ça marche là dedans :

while (continuer) // tant que je veux continuer
   {
      // ################# parcourt de la liste d'évènements ################
      while (App->GetEvent(event)) // tant kil reste des évènements dans la pile
      {
         if(event.Type==sf::Event::Closed) // si on veut fermer : on ferme
         {
            return 0;
         }
         
         if(event.Type==sf::Event::JoyButtonPressed) //affiche les infos sur la pression d'un bouton
         {
            std::cout<<"JoyButtonPressed"<<" ";
            std::cout<<"id : "<<event.JoyButton.JoystickId<<" ";
            std::cout<<"bouton : "<<event.JoyButton.Button<<std::endl;
         }

         if(event.Type==sf::Event::JoyMoved) //idem pour le mouvement d'un joystick
         {
            if(fabs(event.JoyMove.Position)>30) //on ignore les petits déplacements parasites
            {
               std::cout<<"JoyMoved"<<" ";
               std::cout<<"id : "<<event.JoyMove.JoystickId<<" ";
               std::cout<<"axe : "<<event.JoyMove.Axis<<" ";
               std::cout<<"val : "<<event.JoyMove.Position<<std::endl;
            }
         }
      } // fin boucle évênements
}

Comme mis en remarque, la manette a tendance à "inventer" de faibles déplacement des joysticks, donc je les ai tout simplement ignorés ....

Bref, voici les conclusions de ce test :

A,B,X,Y -> boutons 0,1,2,3
LB,RB -> 4,5
SELECT/START -> 6,7
click sur le joystick gauche/droit -> boutons 8 et 9.

Pour les Axes :
Joystick Gauche X/Y -> 0,1
Gachettes : axe 2 (position négative pour RT, positive pour LT)
Joystick Droit : X/Y -> 4,3

Et les flèches alors ?
-> c'est le joystick 6 (où est passé le 5 ??  :o)
ça donne des valeurs correspondant à l'angle entre la verticale et la touche d'appui
touche de droite -> 90
bas -> 180 etc ...

MAIS : la touche du HAUT n'est PAS détectée !

Serai-ce un bug dans la SFML ? Et l’absence de ce joystick 5 est bien étrange ....

Manifestement, ça correspond au POV, mais les valeur 0/360 sont ignorées ....

EDIT : Je pense bien que c'est ça, la position doit être dans ]0;360[, or ici les valeurs limites ont leur importance .... Je ne suis pas parvenu à trouver la ligne de code correspondante ... A vérifier à l'occasion ....
Titre: Re : [SFML 1.6] MA chere manette Xbox 360 ....
Posté par: Laurent le Juillet 25, 2012, 11:15:03 pm
Il faudrait vraiment que tu passes a SFML 2 ;)
Titre: Re : [SFML 1.6] MA chere manette Xbox 360 ....
Posté par: Kaim le Juillet 26, 2012, 12:02:37 am
J'y songe sérieusement ....
Peut être demain !