2017-04-14 3 views
0

J'ai parcouru les forums depuis des jours en essayant de trouver un moyen de renier XInput à partir d'un contrôleur XInput. Je n'ai trouvé aucun moyen de détecter si un bouton est enfoncé et la plupart des messages du forum concernent les sticks analogiques. Je veux aussi atteindre mon objectif SANS PyGame ou des modules externes volumineux. Tout ce que je dois être capable de faire est de détecter quand les boutons A, B, RB (Right Bumper) et D-Pad sont appuyés sur le contrôleur et quand ils sont pressés, exécuter du code. Je voudrais être capable de distinguer entre quel bouton est pressé, pas seulement le fait qu'un bouton a été pressé parce que j'ai besoin de convertir ces entrées en codes VK pour ajouter un support de contrôleur pour un certain jeu (je sais qu'il y a déjà des applications là pour cela mais je veux en faire un qui est dans un seul script et est moins volumineux.)Comment puis-je utiliser XInput en Python() SANS PYGAME) pour appuyer sur les touches du contrôleur?

Aussi, si c'est plus facile dans une autre langue que Python, veuillez expliquer quand même. J'ai seulement dit en Python parce que je connais la langue plus que d'autres. En outre, j'ai assez peu d'expérience de codage, gardez cela à l'esprit.

+0

Avez-vous regardé le module [python-xlib] (https://github.com/python-xlib/python-xlib)? – Felix

+0

@Felix Je viens d'y jeter un coup d'œil et j'ai cherché sur Internet, mais je n'arrive pas à l'utiliser pour détecter les pressions sur les boutons Xbox. Aussi, je veux pouvoir faire ceci en un script sans modules externes parce que je suis sûr qu'il ne devrait pas prendre beaucoup de code pour détecter des pressions de bouton XInput s'il a déjà une API intégrée dans Windows –

+0

Oh s'il vous plaît oubliez ce que j'ai recommandé avant. Il y a XInput dans Windows et Linux et j'ai supposé que vous parliez de Linux. Xlib ne fonctionnera pas avec Windows – Felix

Répondre

2

Jetez un oeil à ce repo Github:

https://github.com/r4dian/Xbox-360-Controller-for-Python

Il semble contenir exactement ce que vous voulez. Je pense que l'utilisation de cette lib est le moyen le plus simple de faire fonctionner le contrôleur avec python.

+0

Après quelques minutes de fixation de mon installation de pépin afin que je puisse télécharger le paquet requis, cela fonctionne! Merci beaucoup! –

+0

Le code fonctionne très bien, mais les événements ont été pénibles, car vous ne pouvez pas accéder aux données de la boucle dans laquelle vous l'exécutez. Je me suis fait un petit résumé pour le résoudre, peut-être partager si quelqu'un d'autre a le même problème - https://pastebin.com/8KDYbpaj – Peter