Частота смены кадров снижается с 60 до 30 кадров в секунду при перетаскивании текстуры с использованием флага BLEND_RGB_MULT? - PullRequest
2 голосов
/ 29 апреля 2020

Я работаю над игрой в пигме, где у меня есть карта нормалей, несколько объектов и карта освещения. Я перетаскиваю карту освещения на экран, используя флаг BLEND_RGB_MULT после перетаскивания карты нормалей. Таким образом, я могу добавить молнию на сцену. Тем не менее, частота кадров, которую я получаю с помощью этого метода, составляет 30 кадров в секунду. Я попытался отключить карту освещения, и частота кадров увеличивается до 60 кадров в секунду.

Код, который я использую для рисования карты нормалей и карты освещения:

surface.blit(normal_map,
             (max(0, -camera[0]), max(0, -camera[1])),
             area=(max(0, camera[0]),
                   max(0, camera[1]),
                   min(normal_map.get_width(),
                       camera[0] + surface.get_width()),
                   min(normal_map.get_height(),
                       camera[1] + surface.get_height())))

for obj in self.objects:
    surface.blit(obj.get_render(delta_time), obj.position)

surface.blit(self.light_map, 
             (max(0, -camera[0]),
              max(0, -camera[1])),
             area=(max(0, camera[0]),
                   max(0, camera[1]),
                   min(light_map.get_width(),
                       camera[0] + surface.get_width()),
                   min(light_map.get_height(),
                       camera[1] + surface.get_height())),
             special_flags=pygame.BLEND_RGB_MULT)

РЕДАКТИРОВАТЬ: я изменяю область и пункт назначения, используя положение относительно камеры игры (которая является просто списком). Таким образом, я отображаю только ту область, которую игрок может видеть.

Я уже установил DOUBLEBUF и HWSURFACE на поверхности основного экрана. Оба изображения загружены с помощью convert ().

Есть ли что-то еще, что я мог бы сделать, чтобы улучшить производительность моей игры?

Карта нормалей: enter image description here Карта освещения : enter image description here

...