Я работаю над 2-й боковой скроллер в PyGame. Для каждой карты мы используем одну текстуру (это фактический размер текстуры):
Затем мы загружаем изображение с этим кодом:
sprite = pygame.image.load("Maps/MapTesting.png")
sprite.convert()
sprite = pygame.transform.scale(sprite,
(sprite.get_width()*6, sprite.get_height()*6))
Как видите, текстура взорвалась 6 раз, чтобы создать фактическую текстуру карты. В среднем эта текстура составляет около 4500x800. Эту текстуру нужно перетаскивать на экран каждый кадр , потому что весь экран загрязнен (благодаря боковой прокрутке). Мы делаем это с помощью этого кода:
screen.blit(sprite, (0, 0),
(cameraposx, cameraposy, windowheight, windowwidth))
И это работает. Проблема в том, что он довольно медленный: я получаю скудные 40 FPS на малоприличном ПК, и это без какого-либо реального AI / объектов, в то время как мы стремимся к 60 FPS. Как мы можем ускорить это?
Обратите внимание, что приведенный выше код очищен и вырван из контекста. Полный код можно найти здесь: https://github.com/nightcracker/PyGG2
И последнее, но не менее важное: хотя приведенное выше изображение может выглядеть как 8-битное, в игре есть элементы, требующие большей битовой глубины.