รองรับ Python 3 เท่านั้นเพราะการพิมพ์ตัวพิมพ์ใหญ่และ Python 3 เย็นอื่น ๆ
* 3.4+ จริง ๆ แล้ว 3.10 หมดแล้วไม่มีเหตุผลที่จะใช้เวอร์ชันเก่า-
เนื่องจากฉันต้องการใช้สิ่งนี้ในโครงการของฉันกับ UI และ .. สิ่งต่าง ๆ ฉันได้ออกแบบมันด้วยการสนับสนุนแบบ listen เธรด (ที่จริงแล้วนี่เป็นตัวเลือกเดียว LOL) ดังนั้นไม่จำเป็นต้องกังวลเรื่องนี้เพียงแค่นำเข้า gamepad ที่จำเป็น
นี่คือตัวอย่าง:
# 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 ()ตัวอย่างเพิ่มเติมสามารถพบได้ในโฟลเดอร์ตัวอย่าง
ตกลงฉันจะรู้ได้อย่างไรว่าโดยไม่ต้องเปิดสคริปต์โมดูลทั้งหมดปุ่ม gamepad ที่ฉันสามารถใช้ได้?
เนื่องจากโมดูลใช้ typehinting อย่างแท้จริงทุกที่ที่คุณสามารถเขียน gamepad.buttons และการเติมข้อความอัตโนมัติจะแสดงปุ่มที่มีอยู่ทั้งหมด หรือคุณอาจเปิดคลาส Gamepad และดูปุ่มทั้งหมดในคลาสย่อย Buttons
gamepads สนับสนุนอะไร? ผู้พิทักษ์ X7 และ Xbox 360 แน่นอน ฉันเป็นเจ้าของ Gamepad ผู้พิทักษ์ X7 เท่านั้นดังนั้นฉันจึงทดสอบในโหมด X-Input ดังนั้นจึงไม่มีความสามารถในการสัมผัสและการสัมผัส แต่คุณสามารถมีส่วนร่วมในการเปลี่ยนแปลงของคุณ :)
เนื่องจากผู้คนอาจใช้ gamepads ชนิดใด (จีนโดยเฉพาะ) มันอาจไม่ทำงานนอกกรอบหรือปุ่มบางปุ่มอาจเปลี่ยนไปและ ฯลฯ ในกรณีนั้นคุณสามารถสืบทอดได้จากชั้นเรียนเริ่มต้น ( pygamepad.gamepads.default.Gamepad ) และเปลี่ยนแปลงบางสิ่งสำหรับกรณีของคุณ ฉันต้องทำเพื่อผู้พิทักษ์ X7 Gamepad ของฉันเพราะปุ่มเริ่มต้นและเลือกปุ่มถูกสลับด้วยเหตุผลบางอย่าง (ใช้โมดูล inputs ภายใต้ประทุนและด้วยเหตุผลบางอย่าง 0x13a และปุ่ม 0x13b ถูกสลับหรือ idk) ดังนั้นฉันจึงเปลี่ยนเริ่มเลือกและเลือกที่จะเริ่มใช้ปุ่ม ButtonOverrides
# 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" )