2017-03-12 79 views
-2

我不知道爲什麼這不起作用,但它不捕獲keydown。點擊交叉工作正常,退出遊戲。它可能是簡單的東西,但我看不到它。 keydown在我的程序的其他部分工作正常,只是主菜單不起作用。下面是菜單部分的代碼:Python PyGame KEYDOWN不工作

 while menuOver == False: 

      Screen.fill(background_colour) 
      font1 = pygame.font.SysFont("Impact", 100) 
      font2 = pygame.font.SysFont("Impact", 50) 
      font3 = pygame.font.SysFont("Impact", 25) 
      lblTitle = font1.render("Python", 100, (black)) 
      Screen.blit(lblTitle, (265, 50)) 

      lblSubTitle = font2.render("Created With Python", 100, (black)) 
      Screen.blit(lblSubTitle, (200, 200)) 

      lblEasy = font3.render('Easy - Press 1', 100, (red)) 
      Screen.blit(lblEasy, (100, 300)) 

      lblNormal = font3.render('Normal - Press 2', 100, (red)) 
      Screen.blit(lblNormal, (300, 300)) 

      lblNightmare = font3.render('Nightmare - Press 3', 100, (red)) 
      Screen.blit(lblNightmare, (525, 300)) 

      lblLeaderboard = font3.render('Press L To View Leaderboard', 100, (black)) 
      Screen.blit(lblLeaderboard, (90, 400)) 

      lblInstructions = font3.render('Press I To View Instructions', 100, (black)) 
      Screen.blit(lblInstructions, (425, 400)) 

      pygame.display.update() 

      for event in pygame.event.get(): 

       if event.type == pygame.QUIT: 
        pygame.quit() 

       if event.type == pygame.KEYDOWN: 

        if event.type == pygame.K_1: 

         menuOver = True 
+1

你必須檢查'event.key == pygame.K_1',不'event.type == pygame.K_1' –

+0

我不敢相信我錯過了!感謝您指出它已經讓我停留了很久! – BoJ

回答

1

在您的代碼,您鍵入event.type == pygame.K_1:,但它應該是if event.key == pygame.K_1

當您鍵入for event in pygame.event.get():時,它會將pygame.event.get()的每個元素插入到event中,每次一個。 event當您使用event.type時,會返回事件類型,並在使用event.key時按下相關鍵(如果相關)。

有關更多信息,請參閱https://www.pygame.org/docs/ref/event.html

編輯:對不起,我只是意識到你的問題得到回答在評論...

+1

發佈答案仍然很好,因爲這是徹底的,新的程序員會發現它很有幫助 – The4thIceman