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 ??
)
ç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 ....