Bienvenue, Invité. Merci de vous connecter ou de vous inscrire.
Avez-vous perdu votre e-mail d'activation ?

Auteur Sujet: [SFML 1.6] [RESOLU]MA chere manette Xbox 360 ....  (Lu 3964 fois)

0 Membres et 1 Invité sur ce sujet

Kaim

  • Jr. Member
  • **
  • Messages: 70
  • SFML 2
    • Voir le profil
[SFML 1.6] [RESOLU]MA chere manette Xbox 360 ....
« 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 ....
« Modifié: Juillet 26, 2012, 12:10:34 am par Kaim »
Programme buggé : pléonasme

http://courtois.cc/murphy/murphy_informatique.html#progsbugs

-> Viens (enfin) de passer en SFML 2 !

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : [SFML 1.6] MA chere manette Xbox 360 ....
« Réponse #1 le: Juillet 25, 2012, 11:15:03 pm »
Il faudrait vraiment que tu passes a SFML 2 ;)
Laurent Gomila - SFML developer

Kaim

  • Jr. Member
  • **
  • Messages: 70
  • SFML 2
    • Voir le profil
Re : [SFML 1.6] MA chere manette Xbox 360 ....
« Réponse #2 le: Juillet 26, 2012, 12:02:37 am »
J'y songe sérieusement ....
Peut être demain !
Programme buggé : pléonasme

http://courtois.cc/murphy/murphy_informatique.html#progsbugs

-> Viens (enfin) de passer en SFML 2 !