2016-08-06 180 views
-1

我剛剛爲python 3.3下載了pygame 1.9.2,並且​​函數無法正常工作。空殼一直告訴我同樣的錯誤:Keydown函數不能正常工作

NameError: name 'KEYDOWN' is not defined 

我該如何解決這個問題?我對編程有點新,所以請你向我解釋一下。

+0

您可以將其添加到開始: 從pygame.locals導入* – LychmanIT

+0

的可能的複製[NameError:不定義名稱「KEYDOWN」(http://stackoverflow.com/questions/17556426/nameerror-name -keydown此結果不定義) – SiHa

回答

1

注意:對不起,刪除我以前的答案,但堆棧溢出剛剛隨機發布我的答案,我完成之前。

那麼,可能有幾件事情是錯的。您可能正在使用pygame.key.keydown(),這是錯誤的,您應該使用pygame.key.get_pressed()。 但我懷疑你的代碼有問題,那就是你沒有正確使用pygame.KEYDOWN

如果你想同時鍵被按下做一些事情,用pygame.key.get_pressed(),做這樣的事情:

key = pygame.key.get_pressed() 
if key[pygame.K_WHATEVER_KEY_YOU_WANT]: 
    # do code 

,只是重複,每關鍵要檢查。

如果你只是想檢查是否被按下某個鍵時,使用pygame.KEYDOWN與if語句,然後檢查,如果你想關鍵嵌套被按下時,如果下聲明第一if語句。像這樣:

if event.type == pygame.KEYDOWN: 
    if event.key == pygame.K_WHATEVER_KEY_YOU_WANT: 
     #do code 

我假設你有你的使用遍歷pygame.event.get()功能「獲取」事件的事件變量。如果沒有那麼這裏是一個遊戲/窗口以上循環代碼

running = True # variable to control while loop 

while running: # while the variable running is equal to true 
    for event in pygame.event.get(): # use the variable 'event' to iterate over user events 
     if event.type == pygame.QUIT: # test if the user is trying to close the window 
      running = False # break the loop if the user is trying to close the window 
      pygame.quit() # de-initialize pygame module 
      quit() # quit() the IDE shell 

     elif event.type == pygame.KEYDOWN: 
      if event.key == pygame.K_WHATEVER_KEY_YOU_WANT: 
       #do code 

這基本上是你如何使用pygame.KEYDOWN。然而,這可能不是唯一的方法。我建議(因爲您是編程新手)在他們的官方網站上閱讀pygame docs以獲取更多關於在pygame中檢查密鑰輸入的信息。並閱讀一些answers這個問題。