Estou trabalhando em um sidecroller 2D no PyGame. Para cada mapa, usamos uma textura (esse é o tamanho real da textura):
Em seguida, carregamos a imagem com este código:
sprite = pygame.image.load("Maps/MapTesting.png")
sprite.convert()
sprite = pygame.transform.scale(sprite,
(sprite.get_width()*6, sprite.get_height()*6))
Como você pode ver, a textura é ampliada 6 vezes para criar a textura real do mapa. Em média, essa textura é de cerca de 4500x800. Essa textura deve ser unida à tela em todos os quadros , porque a tela inteira está suja (graças à rolagem lateral). Fazemos isso usando este código:
screen.blit(sprite, (0, 0),
(cameraposx, cameraposy, windowheight, windowwidth))
E isso funciona. O problema é que é muito lento: recebo 40 FPS em um PC decente, e isso sem a IA / objetos reais, enquanto pretendemos 60 FPS. Como podemos acelerar isso?
Observe que o código acima é higienizado e retirado de contexto. O código completo pode ser encontrado aqui: https://github.com/nightcracker/PyGG2
E por último mas não menos importante, embora a imagem acima possa parecer 8 bits, existem elementos no jogo que exigem mais profundidade de bits.