0

我一直在努力让它在程序已经启动时按空格键播放我的歌曲。它打开了,然后我在光标上看到了加载动画(当光标在程序上时)。程序崩溃了。

`import pygame, sys
from pygame.locals import *
bf = 'bg.jpg'
pygame.init()
screen = pygame.display.set_mode((800, 600))
background = pygame.image.load(bf) .convert()
screen.blit(background, (0,0))
pygame.display.update()
pygame.display.set_caption('Letters')
keys=pygame.key.get_pressed()


while True:
    if keys[pygame.K_SPACE]:
        pygame.mixer.music.load('ht.mp3')
        pygame.mixer.music.play(loops=-1, start=0)


running = True
while running:
    for event in pygame.event.get():
        if event.type == QUIT:

            pygame.quit()
            sys.exit()

请像我小时候一样解释一下。(我是pygame的新手。)

4

2 回答 2

1

你的程序卡在这里:

while True:
    if keys[pygame.K_SPACE]:
        pygame.mixer.music.load('ht.mp3')
        pygame.mixer.music.play(loops=-1, start=0)

循环永远不会结束。一旦你得到你需要的条件,你应该打破循环:

while True:
    if keys[pygame.K_SPACE]:
        pygame.mixer.music.load('ht.mp3')
        pygame.mixer.music.play(loops=-1, start=0)
        break

或者完全删除while循环,您似乎不需要它:

if keys[pygame.K_SPACE]:
    pygame.mixer.music.load('ht.mp3')
    pygame.mixer.music.play(loops=-1, start=0)

希望这可以帮助!

于 2013-10-31T05:05:54.133 回答
-2

由于 pygame 未启动,您不会收到事件。如果您删除while True循环,则 pygame 将启动并开始接收事件

于 2013-10-31T05:01:37.697 回答