【问题标题】:Why is my game (using pygame) so laggy after I blit an image for the background?为什么我的游戏(使用 pygame)在我为背景设置图像后会如此滞后?
【发布时间】:2020-04-20 23:34:37
【问题描述】:

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

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() 并在循环中对其进行 blit
  • 谢谢,kaktus_car,它成功了。如果您将其作为答案而不是评论说,我会检查它。添加 .convert() 到底有什么作用?
  • @AdamT 我想确定这是问题所在。我现在把它作为答案。谢谢

标签: pygame lag


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多