为什么我的游戏(使用 pygame)在我 blit 图像作为背景后如此缓慢?

Why is my game (using pygame) so laggy after I blit an image for the background?

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

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

在我的代码顶部,在我的 运行 循环之前。然后我输入以下内容来 blit 图像:

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

如果我在 运行 循环之前 blit 图像,游戏一点也不卡顿,但是玩家角色移动的任何地方,它都会留下一个永远不会消失的轮廓,as shown 但是,如果我在 运行 循环期间 blit 图像,则不会发生前面提到的示踪效果,而是游戏玩家运行速度非常慢。

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

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

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

之前
pygame.display.update

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

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