我正在使用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()
结果非常不一致。有时候,如果我滚动得非常快,它将在大约一秒钟后开始播放,但永不停止。有时它根本不起作用。
答案 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
,以便更好地控制。