所以我正在建造一个基于圆周率的机器人。 它使用ps3控制器作为输入。当按下X按钮时,它会拍照。因为某种原因,一次大概要拍5次。有没有一种方法可以使输入信号反弹,使其只识别一个按键?在
我假设它每次都注册多个印刷机。。。代码的一部分是附加的,但我必须声明大部分是从皮博格网站在
joystick = pygame.joystick.Joystick(0)
button_take_picture = 14 # X button
while running:
# Get the latest events from the system
hadEvent = False
events = pygame.event.get()
# Handle each event individually
for event in events:
if event.type == pygame.QUIT:
# User exit
running = False
elif event.type == pygame.JOYBUTTONDOWN:
# A button on the joystick just got pushed down
hadEvent = True
elif event.type == pygame.JOYAXISMOTION:
# A joystick has been moved
hadEvent = True
if hadEvent:
if joystick.get_button(button_take_picture):
take_picture()
似乎发生了这样的情况:X按钮在多个帧中保持向下。在此期间可能会发生其他一些事件,导致在代码中对每帧调用
take_picture()
。要解决这个问题,您可以只在JOYBUTTONUP
上调用take_picture()
(当按钮被释放时),或者将if joystick.get_button(button_take_picture)
部分移到pygame.JOYBUTTONDOWN
部分的内部。在或者,您可以使用另一个变量来指示图片是否已被拍摄,如下所示:
相关问题 更多 >
编程相关推荐