PyGame滞后于后台切换?

时间:2015-01-11 23:07:11

标签: python pygame

为什么我更改背景图片时游戏开始滞后?我只是在我的角色与门碰撞时改变图像?继承了一些代码..

这声明了背景

bg = pygame.image.load("map.png")
bg1 = pygame.image.load("house interior.png")
bgnum = 1

这是我切换它们的地方......

 if bgnum == 1:
        if x > 158 and x < 379 and y > 115 and y <295:
            x_change = 0

        if y > 82 and y < 295 and x > 158 and x < 379:
            y_change = 0

        if x > 535 and x < 749 and y > 82 and y <295:
            x_change = 0

        if y > 82 and y < 295 and x > 540 and x < 754:
            y_change = 0

        if y > 285 and y < 305 and x > 610 and x < 660:
            bgnum = 2
            bg = bg1

当我进门并且背景改变时,我的游戏相当滞后..

2 个答案:

答案 0 :(得分:0)

一个初步的猜测 - 在你拍摄之前,你没有在背景图像上调用convert()convert_alpha()。我当然不知道这一点,因为你还没有为我们提供完整的代码示例。

答案 1 :(得分:0)

扩展spirulense的答案,无论何时加载图像,总是将.convert_alpha()添加到最后。我总是使用一个函数来做这个,所以我必须输入更少。您可以在代码中使用以下函数:

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

此功能可大大提高图像的blitting速度。它让我的一款游戏从18到30 fps!你总是想要使用它,除非你需要特定的图像格式,比如在图像转换程序中,但在制作视频游戏时,这应该适用于所有情况。

如果您的游戏仍然滞后,则需要显示更多编码才能解决您的问题。

试试这个网站:

https://www.pygame.org/docs/tut/newbieguide.html

我不是叫你新手,即使我从那里学到了一些东西,我已经编了6年了!在那里有很多建议告诉你如何加速你的代码。

祝你好运!