2017-03-12 2 views
-2

Ich habe keine Ahnung, warum das nicht funktioniert, aber es erfasst nicht das Keydown. Klick auf Kreuz funktioniert gut und beendet das Spiel. Es ist wahrscheinlich etwas Einfaches, aber ich kann es nicht sehen. Das Keydown funktioniert gut in den anderen Teilen meines Programms, es ist nur das Hauptmenü, das nicht funktioniert. Hier ist der Code für das Menü Abschnitt:Python PyGame KEYDOWN funktioniert nicht

 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

Sie müssen prüfen, 'event.key == pygame.K_1', nicht' event.type == pygame.K_1' –

+0

Ich kann nicht glauben, dass ich das verpasst habe! Danke, dass du mich darauf aufmerksam gemacht hast. – BoJ

Antwort

1

in Ihrem Code eingegeben haben Sie event.type == pygame.K_1:, aber es soll if event.key == pygame.K_1 sein.

Wenn Sie for event in pygame.event.get(): eingeben, wird jedes Element von pygame.event.get() nacheinander in event eingefügt. event gibt den Ereignistyp zurück, wenn Sie event.type verwenden, und die Taste ggf. gedrückt, wenn Sie event.key verwenden.

Weitere Informationen finden Sie unter https://www.pygame.org/docs/ref/event.html.

EDIT: Sorry, ich Ihre Frage nur realisiert wurde in den Kommentaren beantwortet ...

+1

Es ist immer noch gut, die Antwort zu posten, denn das ist gründlich und neue Programmierer werden es hilfreich finden – The4thIceman