Je travaille sur un sidecroller 2D dans PyGame. Pour chaque carte, nous utilisons une texture (c'est la taille réelle de la texture):
Ensuite, nous chargeons l'image avec ce code:
sprite = pygame.image.load("Maps/MapTesting.png")
sprite.convert()
sprite = pygame.transform.scale(sprite,
(sprite.get_width()*6, sprite.get_height()*6))
Comme vous pouvez le voir, la texture est gonflée 6 fois pour créer la texture réelle de la carte. En moyenne, cette texture est d'environ 4500x800. Cette texture doit être fusionnée à l'écran à chaque image , car tout l'écran est sale (grâce au défilement latéral). Nous faisons cela en utilisant ce code:
screen.blit(sprite, (0, 0),
(cameraposx, cameraposy, windowheight, windowwidth))
Et il fonctionne. Le problème est qu'il est assez lent: j'obtiens un maigre 40 FPS sur un PC peu décent, et cela sans aucun véritable AI / objets en cours, alors que nous visons 60 FPS. Comment pouvons-nous accélérer cela?
Notez que le code ci-dessus est nettoyé et sorti de son contexte. Le code complet peut être trouvé ici: https://github.com/nightcracker/PyGG2
Enfin et surtout, bien que l'image ci-dessus puisse ressembler à 8 bits, il existe des éléments dans le jeu qui nécessitent plus de profondeur de bits.