يدعم Python 3 فقط ، لأن becaus من typehints وبعض الأشياء الباردة الأخرى python 3.
* 3.4+ في الواقع ، على أي حال ، 3.10 خارج ، لا يوجد حرفيًا أي سبب لاستخدام الإصدارات القديمة-
نظرًا لأنني كنت بحاجة إلى استخدام هذا الشيء في مشروعي مع بعض واجهة المستخدم و .. الأشياء ، لقد صممتها بدعم متعدد مؤشرات الترابط (في الواقع ، هذا هو الخيار الوحيد LOL) ، لذا لا داعي للقلق ، فقط استيراد ألعاب الألعاب المطلوبة ، طريقة listen إلى النار وأنت على ما يرام.
هذا مثال:
# 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 التي يمكنني استخدامها؟
نظرًا لأن الوحدة النمطية تستخدم الخيول حرفيًا في كل مكان ، يمكنك فقط كتابة gamepad.buttons و Explete سيظهر لك جميع الأزرار الموجودة. بدلاً من ذلك ، يمكنك فتح فئة Gamepad فقط ومشاهدة كل الزر في الفئة الفرعية Buttons .
ما هي ألعاب الألعاب التي تدعمها؟ Defender X7 و Xbox 360 بالتأكيد. حسنًا ، أنا أملك فقط Defender X7 Gamepad ، لذا اختبرته في وضع X-Input ، لذلك لا يوجد أي جيروسكوب وقدرات اللمس ، ولكن يمكنك المساهمة في التغييرات :)
نظرًا لأن الناس قد يستخدمون مثل أي نوع من ألعاب الألعاب (الصينية بشكل خاص) ، فقد لا يعمل خارج المربع أو قد يتم تبديل بعض الأزرار وما إلى ذلك ، في هذه الحالة ، يمكنك أن ترث من فئة Gamepad الافتراضية ( pygamepad.gamepads.default.Gamepad ) وتغيير بعض الأشياء لحالتك. كان عليّ أن أفعل ذلك من أجل مدافعي X7 Gamepad لأنه تم تبديل أزرار البدء والاختيار لسبب ما (يستخدم وحدة inputs أسفل الغطاء وسبب ما يتم تبديل أزرار 0x13a و 0x13b أو idk) ، لذلك قمت بتشغيل start واختيار البدء في استخدام 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" )