Sto lavorando su un sidescroller 2D in PyGame. Per ogni mappa utilizziamo una trama (questa è la dimensione effettiva della trama):
Quindi carichiamo l'immagine con questo codice:
sprite = pygame.image.load("Maps/MapTesting.png")
sprite.convert()
sprite = pygame.transform.scale(sprite,
(sprite.get_width()*6, sprite.get_height()*6))
Come puoi vedere, la trama viene fatta saltare in aria 6 volte per creare la trama reale della mappa. In media questa trama è di circa 4500x800. Questa trama deve essere distribuita sullo schermo ad ogni fotogramma , perché l'intero schermo è sporco (grazie allo scorrimento laterale). Lo facciamo usando questo codice:
screen.blit(sprite, (0, 0),
(cameraposx, cameraposy, windowheight, windowwidth))
E funziona Il problema è che è piuttosto lento: ottengo un misero 40 FPS su un PC decente, e questo è senza alcun AI / oggetti reali in corso, mentre puntiamo a 60 FPS. Come possiamo accelerare questo?
Si noti che il codice sopra è disinfettato e rimosso dal contesto. Il codice completo è disponibile qui: https://github.com/nightcracker/PyGG2
E, ultimo ma non meno importante, mentre l'immagine sopra potrebbe sembrare a 8 bit, ci sono elementi nel gioco che richiedono più profondità di bit.