为什么我的游戏(使用 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]
如果你想让你的背景刷新,你必须在循环中调用它。
我想要一张始终位于玩家角色和敌人后面的游戏背景图片。我刚刚输入:
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]
如果你想让你的背景刷新,你必须在循环中调用它。