Ich arbeite an einem 2D-Side-Scroller in PyGame. Für jede Karte verwenden wir eine Textur (dies ist die tatsächliche Größe der Textur):
Dann laden wir das Bild mit diesem Code:
sprite = pygame.image.load("Maps/MapTesting.png")
sprite.convert()
sprite = pygame.transform.scale(sprite,
(sprite.get_width()*6, sprite.get_height()*6))
Wie Sie sehen können, wird die Textur sechsmal gesprengt, um die eigentliche Kartentextur zu erstellen. Im Durchschnitt ist diese Textur etwa 4500x800. Diese Textur muss bei jedem Frame auf den Bildschirm übertragen werden , da der gesamte Bildschirm verschmutzt ist (dank des seitlichen Bildlaufs). Wir machen das mit diesem Code:
screen.blit(sprite, (0, 0),
(cameraposx, cameraposy, windowheight, windowwidth))
Und es funktioniert. Das Problem ist, dass es ziemlich langsam ist: Ich bekomme magere 40 FPS auf einem anständigen PC, und das ohne die tatsächlichen KI / Objekte, während wir 60 FPS anstreben. Wie können wir das beschleunigen?
Beachten Sie, dass der obige Code bereinigt und aus dem Kontext genommen wird. Den vollständigen Code finden Sie hier: https://github.com/nightcracker/PyGG2
Und zu guter Letzt, während das obige Bild wie 8-Bit aussieht, gibt es Elemente im Spiel, die mehr Bittiefe erfordern.