就像标题所暗示的那样,有什么区别吗?我正在使用pygame.display.flip
,我在互联网上看到,他们使用pygame.display.update
而不是使用翻转。哪一个更快?
答案 0 :(得分:31)
pygame.display.flip
和pygame.display.update
之间的主要区别在于
display.flip()
将更新整个展示的内容 display.update()
允许更新屏幕的一部分,而不是屏幕的整个区域。不传递参数,更新整个显示 要告诉PyGame它应该更新哪个屏幕部分(即在你的显示器上绘图)你可以将一个 pygame.Rect
对象或它们的序列传递给{{1功能。 PyGame中的一个Rect存储display.update()
和width
以及height
- 和x
- 该位置的坐标。
PyGame的built-in dawning functions和.blit()
方法返回一个Rect,所以你可以简单地将它传递给y
函数,以便只更新&#34 ;新"绘制区域。
由于 display.update()
仅更新整个屏幕的某些部分与display.update()
相比,display.flip()
在大多数情况下更快强>
答案 1 :(得分:6)
翻转将始终更新整个屏幕。如果您不提供参数,更新也会更新整个屏幕。但是如果你将surface(s)作为参数,它将只更新这些表面。所以它可以更快,取决于你给它的表面数量和它们的宽度和高度。
答案 2 :(得分:0)
答案 3 :(得分:0)
如果您正在进行双缓冲,那么您希望使用 flip()
。只有一个缓冲区也可以工作,除非您专门创建一个双缓冲窗口,否则您正在使用单缓冲,例如:
pygame.display.set((w, h), pygame.DOUBLEBUF)
如果您每帧进行一次完整的显示更新,速度实际上是相同的,因此在单缓冲模式下使用哪种并不重要。