Da Pygame nur auf Python v3.2 und unter läuft, kann ich das jetzt nicht testen.
Aber wenn ich nicht ganz von meinen Medikamenten bin, denke ich, das liegt daran, dass Sie das Display nicht aktualisieren.
Betrachten Sie diese Änderung:
import pygame
pygame.init()
events = pygame.event.get()
while True:
for event in events:
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_1:
print('this should work!!')
pygame.display.flip()
Dadurch wird die Anzeige aktualisiert und die Ereignisse auslösen, in der Anzeige auftreten.
Wenn Sie dies nicht tun, werden Sie mit einem veralteten Fenster enden, das nichts wirklich auslöst, rendert oder produziert, außer vielleicht ein anfängliches Rendern.
Gleichermaßen müssen Sie in vielen GL-Bibliotheken den Ereignispuffer leeren, da sonst der gleiche Effekt auftritt. Das heißt, Sie werden mit einem veralteten Fenster enden, das nur "hängt", weil Ereignisse versuchen, in den Puffer "hineinzukommen", aber Sie haben es nicht regelmäßig geleert. (Einige Grafikbibliotheken erfordern sogar, dass Sie den Ereignispool abfragen, auch wenn er leer ist, nur um die Ereigniswarteschlange zu "freigeben").
Also denken Sie daran, wenn Sie mit Grafiken arbeiten:
- immer den Ereignispuffer nennen (auch wenn es leer ist)
- immer Flip/aktualisieren Sie Ihre Szene, oder Ihre Anwendung versauert