Heim >Backend-Entwicklung >Python-Tutorial >Warum wird meine Pygame-Anwendungsschleife nicht korrekt aktualisiert?
Warum funktioniert meine Pygame-Anwendungsschleife nicht richtig?
Bei der Prüfung Ihres bereitgestellten Codes scheint es, dass die Schleifenanordnung das Hauptproblem ist . In Ihrer Hauptanwendung versuchen Sie, Teile des Bildschirms zu löschen und sie für jede Entität neu zu zeichnen, während Sie nur die spezifische Entität an ihrer aktualisierten Position neu zeichnen. Dieser Ansatz ist nicht notwendig und kann zu visuellen Inkonsistenzen führen.
Im Allgemeinen besteht die beste Vorgehensweise darin:
In diesem überarbeiteten Code Snippet, wir haben die Schleife wie oben erwähnt neu angeordnet:
while 1: # handle events for event in pygame.event.get(): if event.type == pygame.QUIT: sys.exit() # update objects (depends on input events and frames) keys = pygame.key.get_pressed() if keys[pygame.K_LEFT]: objects[0].move_left() if keys[pygame.K_RIGHT]: objects[0].move_right() if keys[pygame.K_UP]: objects[0].move_up() if keys[pygame.K_DOWN]: objects[0].move_down() for num in range(num_objects - 1): objects[num + 1].rand_move() # draw background screen.blit(background, (0, 0)) # draw scene for o in objects: screen.blit(o.image, o.pos) # update dispaly pygame.display.update() pygame.time.delay(100)
Diese Schleife löscht nun effektiv den Bildschirm, zeichnet alle Entitäten und aktualisiert dann die Anzeige in jedem Frame.
Beziehen Sie sich auf dieses Minimum Beispiel zur weiteren Verdeutlichung:
[Beispiellink]
Das obige ist der detaillierte Inhalt vonWarum wird meine Pygame-Anwendungsschleife nicht korrekt aktualisiert?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!