为什么我更改背景图片时游戏开始滞后?我只是在我的角色与门碰撞时改变图像?继承了一些代码..
这声明了背景
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
当我进门并且背景改变时,我的游戏相当滞后..
答案 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年了!在那里有很多建议告诉你如何加速你的代码。
祝你好运!