J'implémente les commandes du joystick dans mon jeu Allegro 5 dans Visual Studio 2017. J'ai essayé de le faire de deux façons: en faisant en sorte que ma file d'attente écoute les événements de joystick dans ma boucle principale, et en ayant une mise à jour ALLEGRO_JOYSTICK_STATE
une fois par image dans ma boucle principale avec l'état actuel du joystick. Cependant, en regardant la valeur pos
du joystick, je trouve que dans les deux cas, il ne retourne pas réellement les positions x et y à 0.0 lorsque le manche revient au neutre, mais plutôt à des valeurs très faibles comme 0.01 ou 0.02. Pour la plupart, cela ne cause pas de problèmes, mais occasionnellement, mon lecteur continuera à se déplacer très lentement, même lorsque le joystick est au neutre, car les valeurs pos
sont trop élevées.Allegro 5: Vérifie si le joystick est "neutre"
Existe-t-il un moyen fiable de vérifier si le joystick est enfoncé ou non? J'ai d'abord pensé à "réinitialiser" la position à 0.0, 0.0 chaque image et ensuite seulement la changer si le mouvement du joystick était détecté, mais la file d'attente des événements ne détecte pas réellement le mouvement à chaque image, même lorsque le joystick "bégaie" en se déplaçant. Puisque les valeurs «neutres» sont très faibles, j'ai aussi pensé à vérifier si elles étaient inférieures à une certaine valeur et à considérer le bâton «neutre» si elles l'étaient, mais cela semble très peu fiable étant donné que je vois des chiffres différents joystick et je ne sais pas à quelle hauteur ils peuvent aller.
Le problème peut bien sûr être avec votre joystick. Essayez de le recalibrer. Une solution paresseuse consisterait à limiter vos valeurs pour obtenir des positions proches du neutre, mais cela pourrait affecter le gameplay. – Rook