如何从 Python 向游戏发送转向 wheel/Joystick 输入?

How do I send a steering wheel/Joystick input to a game from Python?

我需要将在机器学习模型中计算出的一系列方向盘输入:(方向盘、油门、刹车)发送到游戏中以实现自动驾驶。 我已经使用 pynput 发送钥匙并使用 ['w','a','s','d'] 控制汽车,但我想要更流畅的控制方式汽车,因此 我正在寻找一种在 python 中模拟操纵杆的方法。所以我 可以为方向盘和加速器发送模拟输入。

我以前用过这种类型的代码来输入控件

from pynput.keyboard import Key, Controller
import time

keyboard = Controller()
keyboard.press('w')
time.sleep(1)
keyboard.release('w')

我使用 Vjoy to emulate a joysick and create a virtual joystick; used FreePie 作为 Feeder 应用程序,并编写了一个 Python 脚本来将每个轴的输入值发送到 Vjoy。 我的 Vjoy 脚本:- 目前我使用我的鼠标运动来发送 X 轴和 Y 轴的值,但是你可以使用任何你喜欢的方式。

from System import Int16

if starting:
    system.setThreadTiming(TimingTypes.HighresSystemTimer)
    system.threadExecutionInterval = 5
    x = 0
    y = 0
    max = 1
    min = -max

    
    vjoy = vJoy[0] # controlling Vjoy Device 0
    sensX = 50
    sensY = 50

y -= mouse.deltaY * sensY
x += mouse.deltaX * sensX

if x > max:
    x = max
elif x < min:
    x = min

if y > max:
    y = max
elif y < min:
    y = min

vjoy.x = x
vjoy.y = y
diagnostics.watch(vJoy[0].x)
diagnostics.watch(vJoy[0].y)

出于自动驾驶汽车的目的,您可以编写另一个 python 脚本,将输入值(对于 x 轴和 y 轴)提供给此脚本。