Pygame:Blitting一个移动的背景会产生太多的模糊

时间:2009-12-09 04:38:15

标签: python pygame sprite blit

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

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

我使用了他们的简单示例,当你滚动时,背景看起来很模糊(也就是用偏移来表示背景)。我还认为,无论出于什么原因,它可能会导致FPS下降,但它根本没有偏离。我不记得其他2D游戏这样的问题了。据我所知,由于它不断变换,可能会出现一些运动模糊。只是想知道我是否可以采取任何措施来缓解这个问题。有人可以在我可能遗失的任何事情上插话吗?我将不胜感激任何反馈或帮助。谢谢

2 个答案:

答案 0 :(得分: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()

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

答案 1 :(得分:0)

“模糊”你的意思是背景出现“加倍”吗?移动普通尺寸(例如64x64)的精灵时,你会得到同样的效果吗?

如果您看到双倍,则可能是刷新率问题。打开vsync可能会有所帮助。

你得到的帧率是多少?

如果你将动画减慢到大约10 FPS,你有同样的问题吗?