2013-10-31 120 views
0

我一直在努力使它在如果我按下空間時程序已經啓動它將播放我的歌曲。 它打開,然後我得到我的光標加載動畫(當光標在程序上。)。程序崩潰。Python:爲什麼pygame.event.key.get_pressed()不起作用?

`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的是新的。)

回答

-2

您沒有收到,因爲pygame的事件不會啓動。如果您刪除while True環路,則pygame的將啓動並開始接收事件

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) 

希望這有助於!

+0

誰降低了這個數字?你能解釋一下嗎? – aIKid

+0

我不確定是誰,但你是正確的。 – ninMonkey