gpt4 book ai didi

python - 如何在 XBOX One Controller 上拆分触发器?

转载 作者:太空狗 更新时间:2023-10-30 01:32:28 26 4
gpt4 key购买 nike

我希望能够独立检测触发器拉动,但触发器似乎共享一个轴。

我在 MSDN 文档中没有看到有关 Xbox One Controller 的任何内容,但对于 Xbox 360 Controller ,DirectInput 触发器共享轴,而 XInput 为每个触发器提供单独的轴。这表明 pygame 使用的是 DirectInput 而不是 Xinput,但我不知道如何强制 pygame 使用 Xinput。

(如何)我可以强制 pygame 使用 xinput 而不是直接输入?如果这真的不可行,我愿意使用不同的语言。

我正在使用这个脚本从 Controller 读取输入:

import pygame
pygame.init()

screen = pygame.display.set_mode((400,400))
joysticks = []

for i in range(0, pygame.joystick.get_count()):
joysticks.append(pygame.joystick.Joystick(i))
joysticks[-1].init()

while True:
for event in pygame.event.get():
print event

编辑:我现在没有时间完整地写出来,但与此同时,我发现这段代码似乎对我有用(在 Xbox One Spectra Controller 上): https://github.com/r4dian/Xbox-360-Controller-for-Python

最佳答案

首先:

来自 https://en.wikipedia.org/wiki/DirectInput#DirectInput_vs_XInput :

As of 2011 XInput is for Xbox 360 controllers, while DirectInput is for any controller

第二个:

Pygame is an SDL binding.

如果 SDL 有,那么 pygame 可以有 XInput 支持。遗憾的是,SDL 没有。原因是我之前写的,DirectInput比较流行。另请查看: http://forums.libsdl.org/viewtopic.php?t=6352&sid=35bdc1b1615f9ea081671ff548a7e360

如果愿意,您仍然可以围绕 XInput API 编写包装器。

编辑:

您链接的存储库使用 ctypes 创建 XInput API 的包装器。

关于python - 如何在 XBOX One Controller 上拆分触发器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41411144/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com