簡體   English   中英

使用Python模擬XBox控制器輸入

[英]Simulate XBox Controller Input with Python

我希望我的python程序模擬XBox控制器輸入。 如果可能,兩個模擬拇指桿和開/關按鈕。

我在python中找到了關於使用ctypes模擬鍵盤輸入的主題,例如: Python模擬keydown

是否可以模擬它類似於普通鍵盤或鼠標上的“keydown”?

萬一有相同問題的人會找到這個帖子:

我用vJoy,pyVJoy和x360ce解決了這個問題。

vJoy提供了一個SDK和驅動程序來模擬輸入設備。 你可以有操縱桿,游戲手柄等.PyvJoy允許你訪問這些驅動程序並模擬python內部的輸入。 https://github.com/tidzo/pyvjoy pyvJoy使用0到32767之間的值作為“模擬”棒。 例如,要將xbox控制器的左側拇指桿置於中間位置,請將XAxis和YAxis置於32767的1/2中。

因此,對於輸入值介於0和1之間的我,我將它們與此值相乘。 在我的代碼中它看起來像這樣:

MAX_VJOY = 32767
self.j = pyvjoy.VJoyDevice(1)

def play_function(self,X,Y,Z,XRot):
    self.j.data.wAxisX = int(X * self.MAX_VJOY)
    self.j.data.wAxisY = int(Y * self.MAX_VJOY)
    self.j.data.wAxisZ = int(Z * self.MAX_VJOY)
    self.j.data.wAxisXRot = int(XRot * self.MAX_VJOY)
    j.update()

你也可以用這種方式更新“二進制”/“數字”按鈕,pyvjoy github頁面還有一些例子。 嘗試使用此操縱桿應用程序進行校准: http//www.planetpointy.co.uk/joystick-test-application/

最后一部分是使用X360CE,將vJoy“DigitalInput”Devide轉換為XInput設備。 所以PC /游戲認為它是一個真正的Xbox 360或Xbox One控制器。 最后一部分只適用於一些只允許官方Xbox控制器的游戲,比如GTA 5.你可以從這里獲得X360CE: http ://www.x360ce.com/

所有這些結合使我可以通過python玩這些游戲。 我了解到使用WASD來訓練神經網絡並不能很好地工作,因為它總是起到極端作用,因為它只允許1或0按下按鈕。 使用這些控件,您可以獲得更流暢的游戲控制。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM