首页 > 解决方案 > 为什么我的游戏(使用 pygame)在我为背景设置图像后会如此滞后?

问题描述

我想要一个始终在玩家角色和敌人背后的游戏背景图片。我刚刚输入:

background = pygame.image.load("mypicture")

在我的代码顶部,在我的运行循环之前。然后我通过键入以下内容对图像进行 blit:

screen.blit(background, (0, 0))

如果我在运行循环之前对图像进行 blit,则游戏根本不会滞后,但是玩家角色在任何地方移动,都会留下一个永远不会消失的轮廓,如图所示 但是,如果我在运行循环期间对图像进行 blit,之前提到的示踪效果不会发生,而是游戏玩家运行得非常慢。

值得一提的是我的玩家角色的一些代码:

def Player(x, y):
    screen.blit(PlayerImg, (x, y))

我在运行循环结束时调用该函数,就在之前

pygame.display.update

. 玩家被放置在坐标 x, y 上,这些坐标是根据键盘输入决定的。

标签: pygamelag

解决方案


尝试添加转换方法:background = pygame.image.load("mypicture").convert()。这将提高性能。更多信息在这里 [ https://www.pygame.org/docs/ref/surface.html#pygame.Surface.convert] 如果你想让你的背景刷新,你必须在循环中调用它。


推荐阅读