在pygame中,有没有接收xbox控制器触发器输入的方法?

2024-06-09 22:46:22 发布

您现在位置:Python中文网/ 问答频道 /正文

不久前,我开始用两个xbox one控制器在pygame中控制一个游戏。我是在mac操作系统上这样做的,控制器是通过usb-to-micro-usb电缆连接到我的电脑的,或者说,不是通过蓝牙。Pygame能够读取每个输入,两个触发器被标识为它们自己的轴,因此当我返回x=joytsick1.get_numaxes()时,print(x)得到了6。然而,随着最近对Catalina的更新,以及对无线连接的支持,我无法再接收来自这两个触发器的输入。现在当我返回x=joystick1.get_numaxes(),print(x),我得到4。当我在pygame.event.get()中打印事件时,我看到输入在那里,但是在这个方法中,我使用的两个控制器之间没有区别。我如何能够正确地接收来自触发器的输入,或区分两个控制器的输入

import pygame

pygame.init()
pygame.joystick.init()

width = 600
height = 600

screen = pygame.display.set_mode((width, height))
running = True

joystick1 = pygame.joystick.Joystick(0)
joystick1.init()
joystick2 = pygame.joystick.Joystick(1)
joystick2.init()

while running:
    pygame.display.flip()

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

        if event.type == pygame.QUIT:
            running = False
            pygame.quit()

        if event.type == pygame.KEYDOWN:
            if event.key == pygame.K_ESCAPE:
                running = False
                pygame.quit()



Tags: eventgetifinit控制器widthpygamerunning