2014-11-21 55 views
0
envface1=pygame.image.load(p1) 
envface2=pygame.image.load(p2) 
envface1=pygame.transform.scale(envface1,(768,400)) 
envface2=pygame.transform.scale(envface2,(768,400)) 
start = timeit.default_timer() 
window.blit(txt[0],(0,0)) 
window.blit(envface1,(0,400)) 
window.blit(envface2,(800,400)) 
pygame.display.flip() 
display=False 
while not display: 
    #delete the print will make it no responding 
    print 
    keys=pygame.key.get_pressed() 
    if keys[pygame.K_LEFT]: 
     display=True 
     print "1" 
    if keys[pygame.K_RIGHT]: 
     display=True 
     print "2" 
end=timeit.default_timer() 
print end-start 

pygame.quit() 

對於這部分代碼,我試圖讓用戶可以選擇他們喜歡的圖片並將結果打印出來。但在while循環中,當我只用「print」刪除行並運行它時,程序將停止並使其無法響應。爲什麼會發生?奇怪的錯誤導致沒有迴應

+2

如果您不按'K_LEFT'或'K_RIGHT'(假設您做得正確),您將陷入無限循環,因爲'display'永遠不會是'True'。 – CoryKramer 2014-11-21 16:55:25

回答

1

正如Cyber​​解釋的,你有一個while循環運行,而display是錯誤的。但是,由於在循環內部不需要修改display,所以實際上已經創建了一個無限循環。

您發現程序不會響應的原因是無限循環中沒有任何事情發生,除非按下某個鍵。

+0

事情是當我按下按鍵時,它什麼都沒產生並卡住 – 2014-11-21 18:33:48