Heim > Backend-Entwicklung > Python-Tutorial > Warum wird meine Pygame-Anwendungsschleife nicht korrekt aktualisiert?

Warum wird meine Pygame-Anwendungsschleife nicht korrekt aktualisiert?

Barbara Streisand
Freigeben: 2024-11-17 17:44:02
Original
734 Leute haben es durchsucht

Why is my Pygame application loop not updating correctly?

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:

  1. Die gesamte Anzeige löschen oder den Hintergrund zeichnen.
  2. Zeichnen Sie alle darüber liegenden Entitäten neu.
  3. Aktualisieren Sie die Anzeige.

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)
Nach dem Login kopieren

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!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage