在blitting背景时PyGame滞后

时间:2016-11-30 23:00:53

标签: python pygame

我正试图减少游戏中的滞后,因为它无法忍受。我知道,当blitting大图像我应该期待一些滞后,但我没有看到任何减少它的方法。我在这里有代码:https://gist.github.com/Mrmeguyme/ce1a844af21695d1b853ef88fe8de5aa

背景为1280x720px,地面为1280x100px,我的角色为50x50px。

2 个答案:

答案 0 :(得分:3)

请参阅http://www.pygame.org/docs/ref/surface.html#pygame.Surface.convert_alpha

这就是我为所有节目所做的事情:

def loadify(img):
    return pygame.image.load(img).convert_alpha()

我只需用loadify替换pygame.image.load以节省输入。这会将图像转换为正确的像素格式,以便更快速,更轻松地进行blitting。

答案 1 :(得分:0)

您的图片可能具有每像素透明度。将它们转换为不透明。

faster_surface = surface_loaded_directly_from_png.convert()

当然这不适用于角色,但对于背景来说,它会稍微改善一下。

编辑:我也注意到你没有在任何地方调用clock.tick()。这应该可以解决问题,并消除实际上只是CPU自然加速和减速的感知速度减慢。