Я працюю над 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-бітове, в грі є елементи, які потребують більшої бітової глибини.