Ihr PyGame-Projekt zielt darauf ab, mit pygame.draw.rect() einen Hintergrund mit einer grauen Unterseite und einer schwarzen Oberseite zu erstellen Funktion. Trotz früherer erfolgreicher Erfahrungen mit dieser Funktion stoßen Sie auf inkonsistente Zeichenergebnisse. Manchmal erhalten Sie einen schwarzen Bildschirm, während manchmal teilweise ein graues Rechteck auf dem Bildschirm erscheint.
Die Verwirrung entsteht durch die Tatsache, dass das Zeichnen allein in PyGame keine sichtbare Ausgabe erzeugt. Nachdem Sie die zugehörige Oberfläche geändert haben, müssen Sie die Anzeige aktualisieren, um diese Änderungen sichtbar zu machen.
Das Zeichnen erfolgt auf einem Oberflächenobjekt, das mit der PyGame-Anzeige verknüpft ist. Diese Änderungen werden jedoch nicht automatisch in der Anzeige widergespiegelt. Um sie sichtbar zu machen, müssen Sie die Anzeige explizit mit pygame.display.update() oder pygame.display.flip() aktualisieren.
pygame.display.flip() aktualisiert das Ganze display, während pygame.display.update() selektivere Aktualisierungen für bestimmte Bereiche des Bildschirms bereitstellt. Es ist normalerweise stärker für Software-Anzeigen optimiert, wird jedoch nicht für hardwarebeschleunigte Anzeigen unterstützt.
Eine typische PyGame-Anwendungsschleife besteht aus mehreren Schritten:
Hier ist ein geänderter Code, der Anzeigeaktualisierungen enthält:
import pygame from pygame.locals import * pygame.init() DISPLAY = pygame.display.set_mode((800,800)) pygame.display.set_caption("thing") clock = pygame.time.Clock() run = True while run: # handle events for event in pygame.event.get(): if event.type == QUIT: run = False # clear display DISPLAY.fill(0) # draw scene pygame.draw.rect(DISPLAY, (200,200,200), pygame.Rect(0,400,800,400)) # update display pygame.display.flip() # limit frames per second clock.tick(60) pygame.quit() exit()
Durch die Einbindung der erforderlichen Anzeigeaktualisierungen sollten Sie nun den erwarteten Hintergrund mit einer grauen Unterseite und einer schwarzen Oberseite sehen.
Das obige ist der detaillierte Inhalt vonWarum zeichnet mein PyGame-Code nichts?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!