2014-11-21 3 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, когда я удаляю строку только с «печатью» и запускаю ее, программа отключается и не реагирует. Почему это произойдет?странная ошибка не отвечает

+2

Если вы не нажимаете 'K_LEFT' или' K_RIGHT' (при условии, что вы сделали это правильно), вы будете застревать в бесконечном цикле, поскольку 'display' никогда не будет' True'. – CoryKramer

ответ

1

Как объяснил Кибер, у вас есть цикл while, который работает, а display - ложный. Однако, поскольку вы вообще не изменяете display внутри цикла, вы эффективно создали бесконечный цикл.

Ваше наблюдение за тем, что программа не отвечает, вызвано тем, что в бесконечном цикле ничего не происходит, если не нажата клавиша.

+0

Дело в том, что я нажал клавишу, ничего не создал и застрял –

Смежные вопросы