2016-12-17 68 views
1

我一直在使用pygame作爲創建遊戲的一種手段,並且我想將控制器遊戲融入到遊戲中。我一直在pygame上使用新的Xbox One控制器,並且已經能夠在pygame中檢測到控制器,但是,即使當我移動控制器的操縱桿並按下時,pygame.get_event函數也不會運行並始終返回它們的默認值按鈕也是如此。在Pygame中無法檢測到Xbox控制器的移動

我試過pygame.event.pump()無濟於事。這裏是我的代碼:

xboxController = pygame.joystick.Joystick(0) 
    xboxController.init() 
    print(xboxController.get_name()) 
    print("Axes", (xboxController.get_numaxes())) 
    print("Balls", xboxController.get_numballs()) 
    print("Buttons", xboxController.get_numbuttons()) 
    print("Hats", xboxController.get_numhats()) 
    if xboxController.get_init() == True: print("Initialized properly") 

    while not found: 
     trial += 1 
     print(trial) 
     pygame.event.pump() 
     for a in range(0, xboxController.get_numaxes()): 
      if round(xboxController.get_axis(a)*100) != 0: 
       print(xboxController.get_axis(a)) 
     for b in range(0, xboxController.get_numballs()): 
      if xboxController.get_ball(b) != 0: 
       print(xboxController.get_ball(b)) 
     for c in range(0, xboxController.get_numbuttons()): 
      if xboxController.get_button(c) != False: 
       print(xboxController.get_axis(button(c))) 
     for d in range(0, xboxController.get_numhats()): 
      if xboxController.get_hat(d) != (0, 0): 
       print(xboxController.get_hat(d)) 

,我打印出所有控制器的性能的第一部分工作正常,它只是似乎永遠不會知道什麼時候被移動控制器的操縱桿。

回答

1

我也在用Xbox控制器製作遊戲,並且遇到了非常類似的問題。我的問題只是通過使用pygame.event.get()而不是pygame.event.pump()來解決。你甚至不需要對結果做任何事情,只是讓事件似乎讓pygame更新操縱桿的位置。

+1

感謝您的迴應,我用pygame.event.get()替換了我的pygame.event.pum(),但它仍然沒有工作。 –

+0

嗯,奇怪。它檢測到按鈕按下成功嗎? – pydude

+0

根本沒有檢測到。我建立了上面的程序來測試一切的功能,似乎沒有任何工作。它們都返回它們的默認值。 –