1

我想做的是创建一个视口来查看背景的一小部分。(后来把精灵放进去)。

然而,我注意到的问题是当它开始移动时似乎存在背景模糊的问题。我不确定这是因为 blitting 很慢还是因为代码中的问题。我正在寻找其他人如何使用 blit 或创建滚动背景的示例,并找到了这篇文章:滚动游戏

我使用了他们的简单示例,当您滚动时,果然背景看起来很模糊(也就是用偏移量来模糊背景)。我还认为可能是由于某种原因导致 FPS 下降,但它根本没有偏离。我不记得其他 2D 游戏有这样的问题。我知道由于它不断变化,可能会有一些运动模糊。只是想知道我是否可以做些什么来缓解这种情况。有人可以插话我可能遗漏的任何东西吗?我将不胜感激任何反馈或帮助。谢谢

4

2 回答 2

3

我不知道是什么导致了您遇到的问题,但我想这与双缓冲有关。

您是否使用了至少两个表面?

# preparing two surfaces in __init__()
screen = pygame.display.set_mode((800,600))
background = pygame.Surface(screen.get_size())
background.fill((250, 250, 250))

# called at every step in main loop
# draw images on the background surface
background.blit(image, position)
....

# blit background to screen
screen.blit(background, (0, 0))
pygame.display.flip()

如果直接在屏幕表面上绘制图像,则会发生闪烁。

于 2009-12-09T13:53:59.760 回答
0

By "blurry" do you mean that the background appears "doubled"? Do you get the same effect when moving a normal-sized (e.g., 64x64) sprite?

If you are seeing double, then it's probably a refresh rate problem. Turning on vsync may help.

What frame rate are you getting?

If you slow down the animation to around 10 FPS, do you have the same problem?

于 2009-12-09T06:39:04.423 回答