Python 3のみをサポートしています。つまり、タイプヒントやその他のクールなPython 3のもののために。
* 3.4+実際には、とにかく3.10が出ています、文字通り古いバージョンを使用する理由はありません -
私はプロジェクトでいくつかのUIを使用してこのことを使用する必要があったため、MultiThreadingSupport listen実際にはこれが唯一のオプションですlol)で設計する必要があるので、これを心配する必要はありません。
これが例です:
# main.py
from time import sleep
from pygamepad . gamepads import Gamepad
def main ():
gamepad = Gamepad ()
gamepad . listen () # And that's it
# Now you can read gamepad values in the main thread
try :
while True :
print ( "START button value:" , gamepad . buttons . BTN_START . value )
sleep ( 0.01 )
except ( KeyboardInterrupt , SystemExit ):
# Kill gamepad's listening thread
gamepad . stop_listening ()
# And exit from the program
exit ()
if __name__ == "__main__" :
main ()その他の例は、例フォルダーに記載されています
OK、モジュール全体のスクリプト全体を開かずにどのゲームパッドボタンを使用できるかを知るにはどうすればよいですか?
モジュールは文字通りすべての場所でタイプヒントを使用するため、 gamepad.buttonsとAutocompleteを作成することができます。既存のボタンのすべてが表示されます。または、GamePadクラスを開いて、 Buttonsサブクラスのすべてのボタンを表示することもできます。
どのゲームパッドがサポートしていますか? Defender X7とXbox 360は確かです。さて、私はdefender x7ゲームパッドのみを所有しているので、x入力モードでテストしたので、ジャイロスコープとタッチ機能はありませんが、変更に貢献できます:)
人々はあらゆる種類のゲームパッド(特に中国語)のように使用する可能性があるため、箱から出しても構成されたり、一部のボタンが交換されたりする可能性があります。その場合、デフォルトのゲームパッドクラス( pygamepad.gamepads.default.Gamepad )から継承し、ケースのことを変更できます。 Start and Selectボタンは何らかの理由でスタートと選択ボタンが交換されたため、Defender X7 GamePadのためにそうしなければなりませんでした(何らかの理由でinputs ButtonOverridesを使用し、 0x13aと0x13bボタンは交換またはIDKです)。
# pygamepad/gamepads/defenderx7.py
from .. buttons import PressButton
from . default import Gamepad as DefaultGamepad
class Gamepad ( DefaultGamepad ):
class ButtonOverrides :
BTN_START = PressButton ( "BTN_SELECT" )
BTN_SELECT = PressButton ( "BTN_START" )