python - 如何从 Python 向游戏发送方向盘/操纵杆输入?

标签 python pygame computer-vision controls

我需要将机器学习模型中计算出的一系列方向盘输入(方向盘、 throttle 、刹车)发送到游戏中,以实现自动驾驶。 我已经用过pynput发送 key 并使用 ['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模拟摇杆并创建虚拟摇杆;二手 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 轴)提供给该脚本。

关于python - 如何从 Python 向游戏发送方向盘/操纵杆输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62811549/

相关文章:

python - 无法在配备arm M1的Macbook上安装spaCy

python - 使用机器学习进行 Blob 检测?

Python 方波函数 - 这是怎么回事?

python - 如何在Mac上轻松安装pygame Python模块

python - 用Python制作高分表?

python-3.x - 从图像中裁剪矩形纸

python - 如何从图像中删除方括号?

python - 相对导入适用于 from 但导入失败

python - python中的正则表达式子 - 对字符进行分组以识别3个字符并且仅更改其中一个

python - Convert_obj_two.py 语法错误