【发布时间】:2021-08-16 21:16:43
【问题描述】:
我有一个pygame 事件(称为bubble_spawn_event),其间隔(称为bubble_spawn_interval)为1000。我如何使该间隔减少,例如每10 秒0.1 秒?
我尝试创建一个单独的事件(称为bubble_interval_change_event),其间隔(bubble_interval_change_interval)为10秒,当该事件发生时,将bubble_spawn_interval减少0.1秒,然后在同一时间调用pygame.time.set_timer()事件。 (bubble_spawn_event)
我已将气泡生成事件和间隔定义如下:
bubble_spawn_event = USEREVENT
bubble_spawn_interval = 1000
pygame.time.set_timer(bubble_spawn_event, bubble_spawn_interval)
区间改变事件和区间定义如下:
bubble_interval_change_event = USEREVENT + 1
bubble_interval_change_interval = 10000
我尝试更改气泡生成间隔:
elif event.type == bubble_interval_change_event:
bubble_spawn_interval -= 200
pygame.time.set_timer(bubble_spawn_event, bubble_spawn_interval)
我的完整主循环:
while running:
for event in pygame.event.get():
if event.type == QUIT:
running = False
elif event.type == bubble_spawn_event:
bubbles.add(Bubble(screen, random.randint(100, screen.get_width() - 100), screen.get_height()))
elif event.type == bubble_interval_change_event:
pygame.time.set_timer(bubble_spawn_event, 0)
bubble_spawn_interval -= 200
pygame.time.set_timer(bubble_spawn_event, bubble_spawn_interval)
screen.blit(bg_image, (0, 0))
bubbles.update()
for bubble in bubbles:
bubble.screen.blit(bubble.image, bubble.rect)
bubble.move()
pygame.display.update()
clock.tick(60)
pygame.quit()
问题是气泡生成间隔根本没有减少,即使我将间隔减少了 0.9 秒。
【问题讨论】:
-
请发布您的代码,而不是试图描述它。
-
究竟是什么不起作用?您是否尝试取消该事件,然后在
elif块中重新设置它? -
如何取消活动?
-
使用
.set_timer(event, 0),基本上将一个事件的定时器设置为0毫秒,pygame.time.set_timer()docs -
间隔似乎仍然没有下降。
标签: python python-3.x pygame intervals