需要帮助获得向上滚动事件

时间:2019-04-25 08:17:24

标签: python events scroll pygame mouseevent

我正在使用Pygame在Python中创建程序,但找不到向上滚动时可以检测到的有效方法。

我正在尝试重新制作一个流行的视频,叫做“星际鼠标” https://www.youtube.com/watch?v=aANF2OOVX40

我正在尝试让它在滚动时播放相同的音乐(无需编辑即可执行相同的操作)。

通过执行以下操作,我已经能够使它与按键配合使用:

keys = pygame.key.get_pressed()

if keys[pygame.K_KEYNAME]:
     pygame.mixer.music.unpause()

仅使用键似乎可以正常工作,但我需要使用鼠标滚轮。

这是主循环:

run = True

while run:
    #quit game after pressing the close button
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            run = False

    keys = pygame.key.get_pressed()

    #exit game by pressing ESC
    if keys[pygame.K_ESCAPE]:
        run = False

    #scroll to activate
    for event in pygame.event.get():
        if event.type == pygame.MOUSEBUTTONDOWN:
            if event.button == 4:
                pygame.mixer.music.unpause()
            else:
                pygame.music.pause()


    #update background
    win.blit(bg, (width / 4, height / 4))
    pygame.display.update()



pygame.quit()

结果非常不一致。有时候,如果我滚动得非常快,它将在大约一秒钟后开始播放,但永不停止。有时它根本不起作用。

1 个答案:

答案 0 :(得分:0)

此部分:

for event in pygame.event.get():
    if event.type == pygame.MOUSEBUTTONDOWN:
        if event.button == 4:
            pygame.mixer.music.unpause()
        else:
            pygame.music.pause()

每次您拥有event.type == pygame.MOUSEBUTTONDOWN时,您都在暂停或取消暂停音乐。鼠标单击并向下滚动将暂停您的音乐。我将其更改为特定的暂停选项,例如说if event.button == 2而不是您的else,以便更好地控制。